الوحدة Errno في روبي

من موسوعة حسوب
اذهب إلى: تصفح، ابحث

تعدُّ كائنات الاستثناءات في روبي أصنافًا فرعيةً (subclasses) من الصنف Exception. على أي حال، تُبلِّغ أنظمة التشغيل عادةً عن الأخطاء باستخدام أعدادٍ صحيحةٍ مبسّطةٍ (plain integers). تُنشَأ الوحدة Errno ديناميكيًّا لتنظيم تفاصيل هذه الأخطاء الناتجة عن أنظمة التّشغيل وإرسالها إلى أصناف روبي، مع توليد صنف فرعي من الصنف SystemCallError خاص بكل رقم خطأٍ. عند إنشاء الصّنف الفرعي في الوحدة Errno، ستبدأ تسميته بالاسم ::Errno.

تعتمد أسماء الأصناف ::Errno تعتمد على البيئة التي تعمل فيها روبي. ففي منصة يونكس أو ويندوز هناك أصنافُ Errno مثل Errno::EACCES، و Errno::EAGAIN، و Errno::EINTR، ...إلخ.

رقم الخطأ (يكون عددًا صحيحًا) المُرسل من نظام التشغيل والموافق لخطأ معيّن يكون موجودًا كثابت للصنف (Errno::error::Errno).
Errno::EACCES::Errno   #=> 13
Errno::EAGAIN::Errno   #=> 11
Errno::EINTR::Errno    #=> 4
القائمة الكاملة لأخطاء نظام التشغيل على منصتك تكون موجودة على شكل ثوابت للصنف Errno.
Errno.constants   #=> :E2BIG, :EACCES, :EADDRINUSE, :EADDRNOTAVAIL, …

مصادر