الوحدة 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, …