نتائج البحث

اذهب إلى التنقل اذهب إلى البحث

الصنف Exception في روبي

تُستخدَم الكائنات السليلة من الصنف Exception للتواصل بين التّابع Kernel.raise وتصريحات rescue في الكتل (blocks) من الشكل begin...end. تَحمل كائنات الصنف Exception معلوماتٍ عن الاستثناء المَرمي مثل نوعه (اسم صنف الاستثناء)، وسلسلةً نصيّةً وصفيّةً اختياريّة، ومعلوماتِ تتبّعٍ اختيارية. قد تضيف الأصناف الفرعية من الصنف Exception معلوماتٍ إضافيّةٍ مثل NameError.name. قد تُنشِئ البرامج أصنافًا فرعيّةً (subclasses) من الصنف Exception، تكون عادةً StandardError أو RuntimeError، لتوفير أصنافٍ مخصصّةٍ وإضافة معلوماتٍ إضافية. ألقِ نظرةً على قائمة الأصناف الفرعية في الأسفل من أجل قيم ...

المعامل == في الصنف Exception في روبي

يتحقق المعامل == من تساوي كائني استثناء مع بعضهما بعضًا. البنية العامة exc == obj → true or false المعاملات exc كائن من النوع Exception يراد التحقق من تساويه مع الكائن obj. obj الكائن الآخر الذي سيُتحقَق من تساويه مع الكائن exc. القيم المعادة تُعاد القيمة false إذا كان الكائن obj ليس كائنًا من النوع Exception. عدا ذلك، تُعاد القيمة true إذا كان الكائنين exc و obj يتشاركان نفس الصّنف، والرسائل، والتَتبُّع العكسي (backtrace). انظر أيضًا التابع new: يُنشئ كائنًا ...

الاستثناءات (Exceptions) في لغة Kotlin

أصناف الاستثناءات (Exception Classes) تنحدر كلّ أصناف الاستثناءات في لغة Kotlin من الصنف Throwable حيث يوجد لكلِّ استثناءٍ رسالةٌ للإعلام به وتتبُّع تكديسي (stack trace) وسببٌ اختياريّ. ويُستخدَم التعبير throw لرمي كائن استثناءٍ بالشكل: throw MyException("Hi There!") أمّا تعبير try فهو مُستخدَمٌ لكشف الاستثناء كما في الشيفرة: try { // شيفرة } catch (e: SomeException) { // معالجات الاستثناء } finally { // قسم اختياريّ } ومن الممكن أن يحتوي الاستثناء أكثر من قسمٍ واحدٍ من catch أو ...

استبدال الاستثناءات بالاختبارات (Replace Exception with Test)

المشكلة إطلاق استثناء يمكن لاختبار بسيط أن يحل محله. الحل يستعاض عن الاستثناء باختبار الحالة. مثال قبل إعادة التصميم معالجة الاستثناء الحاصل عند وقوع الفهرس periodNumber خارج حدود مصفوفة القيم values وإعادة القيمة 0 آنذاك: في لغة Java: double getValueForPeriod(int periodNumber) { try { return values[periodNumber]; } catch (ArrayIndexOutOfBoundsException e) { return 0; } } في لغة C#‎: double GetValueForPeriod(int periodNumber) { try { return values[periodNumber]; ...

التابع Exception.exception في روبي

يُعيد التّابع exception المُستقبل (receiver) إن لم يمرَّر إليه أي وسيط، أو إذا كان الوسيط الممرر إليه هو نفسه المُستقبل. خلا ذلك، يُنشئ كائن استثناءٍ جديد (exception object)من الصنف نفسه على أنّه المستقبل، ولكن مع رسالةٍ مساوية إلى string.to_str. البنية العامة exception(string) → an_exception or exc المعاملات string سلسلةٌ نصيةٌ تمثل الرسالة. القيم المعادة يُعاد المستقبل إن لم يمرر أي وسيط أو كان الوسيط المعطى نفسه المستقبل، أو يعاد كائن استثناء جديد يُمثِّل المستقبل. انظر أيضا التابع new: يُنشئ كائنًا ...

التابع Exception.new في روبي

يُنشئ التابع new كائنًا جديدًا من النوع Exception، ويمرِّر رسالة اختياريًّا إليه. البنية العامة new(msg = nil) → exception المعاملات msg الرّسالة المراد تمريرها. القيم المعادة يُعاد كائنٌ جديدٌ من النوع Exception. انظر أيضا التابع exception: يُعيد المُستقبل (receiver). التابع backtrace: يُعيد أيَّ تتبّعٍ عكسيٍّ (backtrace) مرتبطٍ بالاستثناء. التابع set_backtrace: يضبط معلومات المصفوفة backtrace الخاصة بكائن الاستثناء. مصادر صفحة التابع new في الصنف Exception في توثيق روبي الرسمي.

التابع Thread.report_on_exception=‎ في روبي

يضبط التابع report_on_exception عند استدعائه بالشكل report_on_exception= boolean‎ حالة "التبليغ عند الاستثناء" (report on exception). عندما تكون القيمة المنطقية هي true، سترث كل المهام الفرعية التي تم إنشاؤها لاحقا الشرط (condition) وتبعث رسالة إلى المجرى ‎$stderr إذا أدى استثناء ما إلى إنهاء مهمة فرعية. يوجد أيضًا تابع نسخة (instance level method) لتعيين هذا الخيار لمهمة فرعية معينة؛ راجع report_on_exception=‎. البنية العامة report_on_exception= boolean→ true or false‎ القيمة المعادة تعاد القيمة المنطقية boolean التي تمثل الحالة الجديدة لحالة "التبليغ عند الاستثناء". ...

التابع Thread.abort_on_exception=‎ في روبي

يضبط التابع abort_on_exception عند استدعائه بالشكل abort_on_exception= boolean حالة الشرط العام "المقاطعة عند حدوث استثناء؟" (abort on exception) إلى القيمة المنطقية boolean. عندما تكون القيمة المنطقية هي true، إذا تم إيقاف هذه المهمة الفرعية بواسطة استثناء، فسيطلق ذلك الاستثناء مجددًا في المهمة الفرعية الرئيسية. وستعاد الحالة الجديدة. يوجد أيضًا تابع نسخة (instance method) لتعيين هذا الخيار لمهمة فرعية معينة، راجع الصفحة abort_on_exception=‎. البنية العامة abort_on_exception= boolean→ true or false‎ القيمة المعادة تعاد القيمة المنطقية boolean بعد ضبطها للشرط العام "المقاطعة ...

تابع النسخة Thread.abort_on_exception‎ في روبي

يُعيد التابع abort_on_exception حالة الشرط المحلي (thread-local‏) "المقاطعة عند حدوث استثناء؟" (abort on exception) في المهمة الفرعية التي استُدعي معها. القيمة الافتراضية هي false. يوجد أيضًا تابع صنف (class method) لتعيين هذا الخيار في كل المهام الفرعية؛ راجع صفحة abort_on_exception. البنية العامة abort_on_exception→ true or false‎ القيمة المعادة تعاد حالة الشرط المحلي (thread-local‏) "المقاطعة عند حدوث استثناء؟" (abort on exception). في المهمة الفرعية المعطاة. انظر أيضًا التابع abort_on_exception =‎: يضبط عند استدعائه بالشكل abort_on_exception= boolean حالة الشرط المحلي "المقاطعة عند حدوث استثناء؟" (abort on exception) ...

التابع Thread.abort_on_exception‎ في روبي

يُعيد التابع abort_on_exception حالة الشرط العام "المقاطعة عند حدوث استثناء؟" (abort on exception). القيمة الافتراضية هي false أي "لا". عند إعطائه القيمة true أي "نعم"، فستوقف أي مهمة فرعية عند حدوث استثناء، وسيُطلق ذلك الاستثناء مجددًا في المهمة الفرعية الرئيسية (main thread). يمكن أيضًا تحديده بواسطة الراية DEBUG$ أو خيار سطر الأوامر ‎-d. يوجد أيضًا تابع نسخة (instance method) لتعيين هذا الخيار في مهمة فرعية معينة، راجع صفحة abort_on_exception لمزيد من المعلومات. البنية العامة abort_on_exception→ true or false‎ القيمة المعادة تعاد ...

تابع النسخة ‎Thread.abort_on_exception=‎‎ في روبي

يضبط التابع abort_on_exception عند استدعائه بالشكل abort_on_exception= boolean حالة الشرط المحلي "المقاطعة عند حدوث استثناء؟" (abort on exception) إلى القيمة المنطقية boolean. فعندما تكون القيمة المنطقية هي true وإذا تم إيقاف هذه المهمة الفرعية بواسطة استثناء، فسيطلق ذلك الاستثناء مجددًا في المهمة الفرعية الرئيسية. يوجد أيضًا تابع صنف (class method) لتعيين هذا الخيار لكل المهام الفرعية، راجع الصفحة abort_on_exception=‎. البنية العامة abort_on_exception= boolean→ true or false‎ القيمة المعادة تعاد القيمة المنطقية boolean بعد تعيينها إلى حالة الشرط المحلي "المقاطعة عند حدوث استثناء؟" (abort on ...

التابع Thread.report_on_exception‎ في روبي

يعيد التابع report_on_exception حالة "التبليغ عند الاستثناء" (report on exception). القيمة الافتراضية هي true منذ روبي 2.5. كل المهام الفرعية التي يتم إنشاؤها عندما تكون قيمة هذه الراية مساوية للقيمة true ستبعث رسالة إلى المجرى stderr$ إذا أنهى استثناء ما هذه المهمة الفرعية. يُستخدَم هذا التابع لإمساك الأخطاء في المهمة الفرعية في وقت مبكر. لكن في بعض الحالات، قد لا ترغب في هذه المخرجات. هناك عدة طرق لتجنب المخرجات الزائدة: إذا لم يكن الاستثناء مقصودًا، فأفضل خيار أمامك هو إصلاح سبب ...

الصنف SignalException في روبي

يًطللق الاستثناء SignalException عند تلقي إشارة ما. begin Process.kill('HUP',Process.pid) sleep # wait for receiver to handle signal sent by Process.kill rescue SignalException => e puts "received Exception #{e}" end ‎ سيُنتج عن تنفيذ هذه الشيفرة ما يلي: received Exception SIGHUP توابع الصنف العامة new ينشئ كائنًا جديدًا من النوع SignalException. توابع النسخة العامة signo يعيد رقم إشارة. مصادر صفحة الصنف SignalException في توثيق روبي الرسمي.

التابع Exception.to_s في روبي

يُعيد التّابع to_s رسالة الاستثناء (أو اسم الاستثناء إذا لم تعيَّن أية رسالة). البنية العامة to_s → string القيم المعادة تُعاد سلسلةٌ نصيةٌ تحوي رسالة الاستثناء أو اسم الاستثناء إذا لم تُعيَّن أية رسالة. انظر أيضا التابع full_message: يُعيد سلسلةً نصيةً منسّقةً من الاستثناء. التابع message: يُعيد ناتج استدعاء التّابع Exception.to_s. ويُعيد هذا عادةً رسالة الاستثناء أو اسمه. التابع new: يُنشئ كائنًا جديدًا من النّوع Exception، ويمرِّر رسالةً اختياريًّا إليه. مصادر صفحة التابع to_s في الصنف Exception في توثيق روبي ...

التابع Exception.backtrace_locations في روبي

يُعيد التّابع backtrace_locations أي تتبع عكسي (backtrace) مرتبط بالاستثناء. هذا التّابع شبيه بالتّابع backtrace، ولكن الأخير هو مصفوفة من Thread::Backtrace::Location. حاليًّا، لا يتأثّر هذا التّابع بالتّابع set_backtrace. البنية العامة backtrace_locations → array القيم المعادة تُعاد مصفوفة تمثل التتبع العكسي المترافق مع الاستثناء. انظر أيضا التابع backtrace: يُعيد أيَّ تتبّعٍ عكسيٍّ (backtrace) مرتبطٍ بالاستثناء. التابع set_backtrace: يضبط معلومات المصفوفة backtrace الخاصة بكائن الاستثناء. التابع exception: يُعيد المُستقبل (receiver). مصادر صفحة التابع backtrace_locations في الصنف Exception في توثيق روبي الرسمي.

التابع fail‎ الخاص بالصنف Kernel في روبي

في حال استدعاء التابع fail بدون تمرير أي معامل، فسيُطلق الاستثناء في ‎$!‎‎‎‎ أو يطلق الخطأ RuntimeError إذا كان ‎$!‎ يساوي nil. في حال تمرير سلسلة نصية فقط، فسيُطلَق الخطأ RuntimeError مع إظهار هذه السلسلة النصية كرسالة. خلا ذلك، يجب أن يكون الوسيط الأول اسم الصنف Exception (أو كائنًا يعيد كائنًا من النوع Exception عند إرسال رسالة استثناء). يحدِّد الوسيط الاختياري الثاني الرسالة المرتبطة بالاستثناء، أما الوسيط الثالث فهو مصفوفة تضم معلومات الاستدعاء. تُلتقَط الاستثناءات بواسطة الجملة rescue من الكتل ...

التابع raise‎ الخاص بالصنف Kernel في روبي

استدعاء التابع raise بدون تمرير أي معامل يُطلق الاستثناء في ‎$!‎‎‎‎ أو يطلق الخطأ RuntimeError إذا كان ‎$!‎ يساوي nil. في حال تمرير سلسلة نصية فقط، فسيُطلَق الخطأRuntimeError مع إظهار هذه السلسلة النصية كرسالة. خلا ذلك، يجب أن يكون الوسيط الأول اسم الصنف Exception (أو كائنًا يعيد كائنًا من النوع Exception عند إرسال رسالة استثناء). يحدِّد الوسيط الاختياري الثاني الرسالة المرتبطة بالاستثناء، أما الوسيط الثالث فهو مصفوفة تضم معلومات الاستدعاء. تُلتقَط الاستثناءات بواسطة الجملة rescue من الكتل begin...end. البنية العامة raise raise(string) raise(exception [, string [, array]])‎ المعاملات string‎ سلسلة نصية تمثل الرسالة المراد إظهارها ...

التابع Exception.cause في روبي

يُعيد التّابع cause الاستثناء السابق (!$) عندما يُرمَى هذا الاستثناء. هذا مفيد في الاستثناءات المغلقة والاحتفاظ بمعلومات الاستثناء الأصلية. البنية العامة cause → an_exception or nil القيم المعادة يعاد الاستثناء الذي سبق الاستثناء المرمي، أو تعاد القيمة nil خلا ذلك. انظر أيضا التابع message: يُعيد ناتج استدعاء التّابع Exception.to_s. ويُعيد هذا عادةً رسالة الاستثناء أو اسمه. التابع new: يُنشئ كائنًا جديدًا من النّوع Exception، ويمرِّر رسالةً اختياريًّا إليه. التابع inspect: يُعيد اسم صنف الاستثناء ورسالته. التابع backtrace: يُعيد أيَّ تتبّعٍ ...

التابع Encoding::Converter.last_error في روبي

يُعيد التّابع last_error الكائن exception عند حصول خطأٍ في آخر عملية تحويل أو يعيد القيمة nil إن لم يحصل أي خطأ. تشير القيمة "error" إلى أنَّ الخطأين Encoding::InvalidByteSequenceError وEncoding::UndefinedConversionError نتجا من التّابع convert، وأنَّ invalid_byte_sequence: وincomplete_input: و undefined_conversion: نتجوا من التّابع primitive_convert. البنية العامة last_error → exception or nil القيم المعادة يُعاد الكائن exception عند حصول خطأٍ في آخر عملية تحويل، أو تعاد القيمة nil إذا جرى التحويل الأخير من دون أخطاءٍ. أمثلة مثالٌ عن استخدام التابع last_error: ec = ...

التابع Thread.raise‎ في روبي

يطلق التابع raise استثناء من مهمة فرعية معينة. لا يلزم أن يكون الُمستدعي (caller) هو المهمة الفرعية التي استُدعي التابع معها. انظر صفحة التابع Kernel.raise لمزيد من المعلومات. البنية العامة raise raise(string) raise(exception [, string [, array]])‎ أمثلة مثال على استخدام التابع raise‎: Thread.abort_on_exception = true a = Thread.new { sleep(200) } a.raise("Gotcha")‎ هذا سوف ينتج: prog.rb:3: Gotcha (RuntimeError) from prog.rb:2:in `initialize' from prog.rb:2:in `new' from prog.rb:2‎ انظر أيضا التابع abort_on_exception: يُعيد حالة الشرط المحلي (thread-local‏) "المقاطعة عند حدوث استثناء؟" (abort on exception) في المهمة الفرعية التي ...

التابع Exception.backtrace في روبي

يعيد التّابع backtrace أيَّ تتبع عكسي (backtrace) مرتبط بالاستثناء. التتبع العكسي (backtrace) هو مصفوفةٌ من السّلاسل النصية، تحوي كل واحدةٍ منها إمّا "filename:lineNo: in 'method'‎'' أو ".filename:lineNo''. البنية العامة backtrace → array القيم المعادة تُعاد مصفوفة تمثل التتبع العكسي. أمثلة مثالٌ عن استخدام التابع backtrace: def a raise "boom" end def b a() end begin b() rescue => detail print detail.backtrace.join("\n") end سيعطي هذا المثال عند تنفيذه الناتج التالي: prog.rb:2:in `a' prog.rb:6:in `b' prog.rb:10 انظر أيضا التابع backtrace_locations: يُعيد أي تتبع عكسي (backtrace) مرتبط بالاستثناء. ...

استبدال شيفرات الأخطاء باستثناءات (Replace Error Code with Exception)

المشكلة يعيد التابع قيمة خاصة تشير إلى خطأ. الحل إطلاق استثناء بدلًا من ذلك. مثال قبل إعادة التصميم يعيد التابع ()withdraw القيمة 1- التي تمثِّل خطأً إن تحقق شرط محدَّد: في لغة Java: int withdraw(int amount) { if (amount > _balance) { return -1; } else { balance -= amount; return 0; } } في لغة C#‎: int Withdraw(int amount) { if (amount > _balance) { ...

تابع النسخة Thread.report_on_exception=‎ في روبي

يضبط التابع report_on_exception عند استدعائه بالشكل report_on_exception= boolean حالة "التبليغ عند حصول استثناء" (report on exception) للمهمة الفرعية المحلية المعطاة إلى القيمة boolean. عند تكون القيمةالمنطقية هي true، ستُطبع رسالة على المجرى ‎$stderr إذا أدى استثناء ما إلى إنهاء المهمة الفرعية. يوجد أيضًا تابع صنف (class level method) لتعيين هذا الخيار لجميع المهام الفرعية الجديدة؛ راجع الصفحة report_on_exception=‎. البنية العامة report_on_exception= boolean→ true or false‎ القيمة المعادة تعاد القيمة المنطقية boolean بعد تعيينها إلى حالة "التبليغ عند حصول استثناء". انظر أيضًا ...

تابع النسخة Thread.report_on_exception‎ في روبي

يعيد التابع report_on_exception حالة "التبليغ عند حصول استثناء" (report on exception) للمهمة الفرعية المحلية. القيمة الافتراضية عند إنشاء المهمة الفرعية هي قيمة الراية العامة report_on_exception. يوجد أيضًا تابع صنف (class level method) لتعيين هذا الخيار لكل المهام الفرعية؛ راجع صفحة report_on_exception. البنية العامة report_on_exception→ true or false‎ القيمة المعادة تعاد قيمة منطقية تمثل حالة "التبليغ عند حصول استثناء". انظر أيضا التابع raise: يطلق استثناء من مهمة فرعية معينة. التابع report_on_exception=‎: يضبط عند استدعائه بالشكل report_on_exception= boolean حالة "التبليغ عند حصول استثناء" (report on exception) للمهمة ...

التابع Process.exit في روبي

يبدأ التابع exit عملية الإنهاء لشيفرة روبي البرمجية عبر اطلاق الاستثناء SystemExit. هذا الاستثناء قد يُلتقَط. البنية العامة exit(status=true) Kernel::exit(status=true) Process::exit(status=true) المعاملات status معامل اختياري يُستعمَل لإعادة حالة الشيفرة للبيئة المستدعية. القيمة true والقيمة false للحالة المعادة تشيران إلى النجاح والفشل على التوالي. تفسير القيم العددية الأخرى المعطاة يعتمد على نظام التشغيل آنذاك. القيمة الافتراضية هي: true. أمثلة مثال على استعمال التابع exit: begin exit puts "never get here" rescue SystemExit puts "rescued a SystemExit exception" end puts "after begin block" ينتج عن تنفيذ ...

الصنف Thread في روبي

المهام الفرعية (Threads، وتدعى "الخيوط" أيضًا) هي الطريقة التي تنفذ بها روبي البرمجة المتزامنة (concurrent programming). البرامج التي تتطلب تنفيذ عدة مهام فرعية يمكنها استخدام الصنف Thread. على سبيل المثال، يمكننا إنشاء مهمة فرعية جديدة منفصلة عن المهمة الرئيسية باستخدام التابع new. thr = Thread.new { puts "Whats the big deal" }‎ ثم يمكننا إيقاف تنفيذ المهمة الفرعية الرئيسية مؤقتًا إلى حين إنتهاء المهمة الفرعية خاصتنا باستخدام التابع join: thr.join #=> "Whats the big deal"‎ في حال عدم استدعاء التابع join قبل ...

الصنف RuntimeError في روبي

يُطلق الاستثناء RuntimeError عند محاولة تنفيذ عملية غير صالحة. في حال عدم تحديد صنف الاستثناء Exception، سيُطلق الاستثناء Kernel.raise. الشيفرة التالية: raise "ouch" ستطلق الاستثناء RuntimeError بالشكل التالي: RuntimeError: ouch مصادر صفحة الصنف RuntimeError في توثيق روبي الرسمي.

التابع exit‎ الخاص بالصنف Kernel في روبي

يبدأ التابع exit عملية إنهاء البرنامج في روبي، عن طريق إطلاق استثناء SystemExit. من الممكن التقاط هذا الاستثناء. begin exit puts "never get here" rescue SystemExit puts "rescued a SystemExit exception" end puts "after begin block" ينتج عند تنفيذه: rescued a SystemExit exception after begin block‎ قبل الإنهاء مباشرة، تنفذ روبي كل التوابع والكتل المرتبطة بالشيفرة عبر التابع at_exit، وتنفِّذ كل الكائنات المُنهيَة (object finalizers، راجع ObjectSpace.define_finalizer). at_exit { puts "at_exit function" } ObjectSpace.define_finalizer("string", proc { puts "in finalizer" }) exit ينتج عند تنفيذ الشيفرة: ...

الصنف ScriptError في روبي

الصنف ScriptError هو الصنف الأب (superclass) لأصناف الأخطاء التي تُطلق عندما لا يمكن تنفيذ الشيفرة بسبب إحدى الأخطاء التالية: LoadError أو NotImplementedError أو SyntaxError. لاحظ أنَّ النوع ScriptError من أخطاء ليست قياسية (أي ليست من الأخطاء StandardError)، ولن تتم معالجتها ما لم يتم تحديدها بشكل صريح (أو تحديد صنفها الأب Exception). مصادر صفحة الصنف ScriptError في توثيق روبي الرسمي.

الصنف StandardError في روبي

معظم أخطاء الأنواع تنحدر من الصنف StandardError؛ ستُعالج الكتلة rescue التي لا تحدد الصنف Exception بشكل صريح كل الأخطاء StandardError (دون غيرها). def foo raise "Oups" end foo rescue "Hello" #=> "Hello" الشيفرة التالية: require 'does/not/exist' rescue "Hi" ستطلق استثناء بالشكل التالي: LoadError: no such file to load -- does/not/exist مصادر صفحة الصنف StandardError في توثيق روبي الرسمي.

التابع Thread.handle_interrupt‎ في روبي

يغير التابع handle_interrupt توقيت المقاطعة غير المتزامنة (asynchronous interrupt timing). المقاطعة (interrupt) يعني الحدث غير المتزامن (asynchronous event) والإجراء المقابل raise و kill وإشارة المسك (signal trap، غير مدعومة حاليًا) وعملية إنهاء المهمة الفرعية الرئيسية (عند إنهاء المهمة الفرعية الرئيسية، فسيتم إنهاء كل المهام الفرعية الأخرى). البنية العامة handle_interrupt(hash) { ... } → result of the block‎ يحتوي المعامل hash المعطى على أزواج على شاكلة ExceptionClass => :TimingSymbol إذ ExceptionClass هو مقاطعة (interrupt) المٌعالج من قبل الكتلة المعطاة. أما TimingSymbol فيمكن أن يكون ...

التابع ?Exception.to_tty في روبي

يتحقّق التّابع ?to_tty فيما إذا كانت رسائل الاستثناء ستُرسل إلى الطرفية tty. البنية العامة to_tty? → true or false القيم المعادة تُعاد القيمة true إذا كانت رسائل الاستثناء ستُرسل إلى الطرفية tty، أو تُعاد القيمة false خلاف ذلك. انظر أيضا التابع to_s: يُعيد رسالة الاستثناء (أو اسم الاستثناء إذا لم يتم تعيين أي رسالة). التابع full_message: يُعيد سلسلةً نصيةً منسّقةً من الاستثناء. مصادر صفحة التابع ?to_tty في الصنف Exception في توثيق روبي الرسمي.

التابع Exception.inspect في روبي

يُعيد التّابع inspect اسم صنف الاستثناء ورسالته. البنية العامة inspect → string القيم المعادة تُعاد سلسلةٌ نصيةٌ تحوي اسم صنف الاستثناء ورسالته. انظر أيضا التابع to_s: يُعيد رسالة الاستثناء (أو اسم الاستثناء إذا لم يتم تعيين أي رسالة). التابع full_message: يُعيد سلسلةً نصيةً منسّقةً من الاستثناء. التابع message: يُعيد ناتج استدعاء التّابع Exception.to_s. ويُعيد هذا عادةً رسالة الاستثناء أو اسمه. مصادر صفحة التابع inspect في الصنف Exception في توثيق روبي الرسمي.

الصنف ArgumentError في روبي

يُطلق الاستثناء ArgumentError عندما تكون الوسائط (arguments) غير صالحة، ولا يكون هناك صنف Exception أكثر تحديدًا. تفحَّص المثال التالي الذي يشرح حالة تمرير عدد غير مناسب من الوسائط: [1, 2, 3].first(4, 5) سيُطلق عند تنفيذ هذه الشيفرة الاستثناء ArgumentError: ArgumentError: wrong number of arguments (given 2, expected 1) أما المثال التالي، فيشرح حالة تمرير وسيط غير مقبول: [1, 2, 3].first(-4) سيُطلق عند تنفيذ هذه الشيفرة الاستثناء ArgumentError: ArgumentError: negative array size مصادر صفحة ArgumentError في التوثيق الرسمي للغة ruby

التابع Exception.message في روبي

يُعيد التّابع message ناتج استدعاء التّابع Exception.to_s. ويُعيد هذا عادةً رسالة الاستثناء أو اسمه. البنية العامة message → string القيم المعادة تُعاد سلسلةٌ نصيةٌ تحوي رسالة أو اسم الاستثناء والذي يكون ناتج استدعاء Exception.to_s. انظر أيضا التابع to_s: يُعيد رسالة الاستثناء (أو اسم الاستثناء إذا لم يتم تعيين أي رسالة). التابع full_message: يُعيد سلسلةً نصيةً منسّقةً من الاستثناء. التابع ?to_tty: يتحقّق فيما إذا كانت رسائل الاستثناء ستُرسل إلى الطرفية tty. مصادر صفحة التابع message في الصنف Exception في توثيق روبي ...

التابع Exception.set_backtrace في روبي

يضبط التّابع set_backtrace معلومات المصفوفة backtrace الخاصة بكائن الاستثناء. مصفوفة التتبع العكسي (backtrace) يجب أن تتكون من عدة سلاسل نصية أو سلسلة نصية واحدة بالتنسيق الموصوف في التابع backtrace. البنية العامة set_backtrace(backtrace) → array المعاملات backtrace المحتوى الجديد لمصفوفة التتبع العكسي الذي يراد تعيينه. القيم المعادة تُعاد مصفوفة backtrace جديدة بعد ضبط محتواها إلى backtrace. انظر أيضا التابع backtrace: يُعيد أيَّ تتبّعٍ عكسيٍّ (backtrace) مرتبطٍ بالاستثناء. التابع backtrace_locations: يُعيد أي تتبع عكسي (backtrace) مرتبط بالاستثناء. مصادر صفحة التابع set_backtrace في ...

معالجة الاستثناءات في روبي

يتمّ التعامل مع الاستثناءات بعد الكلمة rescue في الكتلة begin/end: begin  # الشيفرة التي قد تسبب ظهور استثناء برمجي rescue  # معالجة الاستثناء end  إذا كنت ضمن تابع، فلست بحاجة لاستخدام begin و end إلا إذا كنت ترغب بحدّ النّطاق الخاص بالاستثناء الذي ترغب بمعالجته: def my_method  # ... rescue  # ... end نفس الأمر يطبّق في الأصناف (classes) والوحدات (modules). يمكنك إسناد استثناء إلى متغيّر محليّ باستخدام الرمز ‎=>‎ متبوعًا باسم المتغيّر، وذلك في نهاية السطر الخاص بالكلمة rescue: begin  # ... rescue => exception  warn exception.message  raise # كرر ظهور ...

الاستثناءات في بايثون

قد تكون التعابير البرمجية في الشيفرة صحيحة من ناحية الصيغة، لكن قد يؤدي تنفيذ تلك الشيفرة إلى التسبب في حدوث الأخطاء. تسمّى الأخطاء المُكتشفة أثناء تنفيذ الشيفرة بالاستثناءات (exceptions) وقد تتسبب في إيقاف عمل البرنامج (fatal) في بعض الأحيان. صيغة الاستثناءات تُنشئ الاستثناءات رسائل خطإٍ مماثلة لما يلي: >>> 10 * (1/0) Traceback (most recent call last):   File "<stdin>", line 1, in <module> ZeroDivisionError: division by zero >>> 4 + spam*3 Traceback (most recent call last):   File "<stdin>", line 1, in <module> NameError: name 'spam' ...

الاستثناءات في PHP

يتضمّن الإصدار الخامس من PHP نموذج استثناءات مشابهًا للغات البرمجية الأخرى. يمكن رمي الاستثناء والتقاطه في PHP، ويمكن إحاطة الشيفرة بكتلة try لتسهيل عملية التقاط الاستثناءات المحتملة، ويجب أن ترتبط بكل كتلة try إما كتلة catch أو finally واحدة على الأقل. يجب أن يكون كائن الاستثناء المرمي نسخة من الصنف Exception أو صنفًا متفرعًا منه، ويؤدي رمي كائن لا ينتمي إلى هذا الصنف إلى حدوث خطأ من نوع Fatal. الكتلة catch يمكن استخدام كتل catch متعدّدة لالتقاط أصناف مختلفة من ...

الاستثناءات في PHP

يتضمّن الإصدار الخامس من PHP نموذج استثناءات مشابهًا للغات البرمجية الأخرى. يمكن رمي الاستثناء والتقاطه في PHP، ويمكن إحاطة الشيفرة بكتلة try لتسهيل عملية التقاط الاستثناءات المحتملة، ويجب أن ترتبط بكل كتلة try إما كتلة catch أو finally واحدة على الأقل. يجب أن يكون كائن الاستثناء المرمي نسخة من الصنف Exception أو صنفًا متفرعًا منه، ويؤدي رمي كائن لا ينتمي إلى هذا الصنف إلى حدوث خطأ من نوع Fatal. الكتلة catch يمكن استخدام كتل catch متعدّدة لالتقاط أصناف مختلفة من ...

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

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

معالجة الأخطاء (Error Handling) في Laravel

مقدمة عند بدء مشروع Laravel جديد تكون معالجة الأخطاء والاستثناءات مُعدّة لك مُسبقا. تُسجّل كافة الاستثناءات التي يطلقها تطبيقك في الصنف App\Exceptions\Handler ثم تُرجع للمُستخدم. سنتعمّق في هذا الصنف أكثر من خلال هذا التوثيق. الضبط يحدد الخيار debug في ملف إعداداتك config/app.php مقدار المعلومات الفعلية التي تُعرض عن الخطأ للمستخدم. يُعد هذا الاختيار إفتراضيًّا ليحترم قيمة متغيّر البيئة APP_DEBUG التي تُخزّن في ملفك env. . عليك وضع قيمة متغير البيئة APP_DEBUG على true عند التطوير المحلّي. يجب أن توضع هذه ...

التابع Exception.full_message في روبي

يُعيد التّابع full_message سلسلةً نصيةً منسّقةً من الاستثناء. تُنسّق السلسلة النصية المعادة بنفس التنسيق التي تستعمله روبي عند طبع الاستثناءات uncaught على مجرى الخطأ القياسي (stderr). البنية العامة full_message(highlight: bool, order: [:top or :bottom]) → string المعاملات highlight قيمة منطقية؛ إن كانت true، فسيُرسل معالج الخطأ الافتراضي رسالةً إلى الطرفية tty. القيمة الافتراضية لهذا المعامل تعتمد على ‎$stderr وعلى القيمة التي يعيدها التابع tty?‎ في وقت الاستدعاء. order يحدد كيفية ترتيب الناتج المعاد ويكون إما top: أو bottom:، وتوضع رسالة ...

التابع Thread.join‎ في روبي

يوقف التابع join عند استدعائه تنفيذ المهمة الفرعية المُستدعيَة (calling thread)، وبدء تنفيذ المهمة الفرعية التي استُدعي معها. ولن يعود حتى تخرج (exits) المهمة الفرعية، أو حتى مرور فترة زمينة محدَّدة. في حالة انتهاء المهلة الزمنية، ستعاد القيمة nil؛ خلا ذلك، ستُعاد المهمة الفرعية. سيتم إنهاء كل المهام الفرعية غير المضمومة (joined) عندما يخرج البرنامج الرئيسي. إن أطلقت المهمة الفرعية سابقًا استثناء ولم يتم تعيين الرايتين abort_on_exception أو DEBUG (أي أنه لم تتم معالجة الاستثناء بعد)، فسيُعالج في هذا الوقت. البنية ...

تعريف أحداث التنظيف clean-up actions

تمتلك عبارة try جزءًا اختياريًا آخر، والهدف منه هو تعريف أحداث تنظيف (clean-up actions) يجب تنفيذها في جميع الظروف، فعلى سبيل المثال: >>> try: ...     raise KeyboardInterrupt ... finally: ...     print('Goodbye, world!') ... Goodbye, world! KeyboardInterrupt Traceback (most recent call last):   File "<stdin>", line 2, in <module> تُنفّذ عبارة finally دائمًا قبل الخروج من عبارة try، سواء أحدث الاستثناء أم لم يحدث. وعند حدوث استثناء في عبارة try ولم تجر معالجته بواسطة عبارة except (أو أنّه حدث في عبارة except أو else) فإنّه يعاد إطلاق ذلك ...

تعريف أحداث التنظيف clean-up actions

تمتلك عبارة try جزءًا اختياريًا آخر، والهدف منه هو تعريف أحداث تنظيف (clean-up actions) يجب تنفيذها في جميع الظروف، فعلى سبيل المثال: >>> try: ...     raise KeyboardInterrupt ... finally: ...     print('Goodbye, world!') ... Goodbye, world! KeyboardInterrupt Traceback (most recent call last):   File "<stdin>", line 2, in <module> تُنفّذ عبارة finally دائمًا قبل الخروج من عبارة try، سواء أحدث الاستثناء أم لم يحدث. وعند حدوث استثناء في عبارة try ولم تجر معالجته بواسطة عبارة except (أو أنّه حدث في عبارة except أو else) فإنّه يعاد إطلاق ذلك ...

التابع IO.write_nonblock‎ في روبي

يكتب التابع write_nonblock السلسلة النصية المُمرَّرة إليه في المجرى الذي استُدعي معه باستخدام استدعاء النظام write(2)‎ بعد تعيين قيمة الراية O_NONBLOCK الخاصة بواصف الملف (file descriptor) الأساسي. يستدعي التابع write_nonblock استدعاء النظام write(2)‎. ويتسبب في كافة الأخطاء التي يتسبب فيها استدعاء النظام write(2)‎، مثل Errno::EWOULDBLOCK و Errno::EINTR وغيرهما. قد تكون النتيجة أصغر من طول السلسلة النصية (أي أن الكتابة جزئية). لذا يجب أن يعالج المستدعي هذه الأخطاء، إضافة إلى مسألة الكتابة الجزئية. إن كان الاستثناء يساوي Errno::EWOULDBLOCK أو Errno::EAGAIN، فسيتم توسيعه ...

الاستثناءات المعرفة من طرف المستخدم

يمكن للمستخدم إنشاء صنف استثناء جديد (راجع قسم الأصناف في بايثون للمزيد من المعلومات)، ويجب أن تكون الاستثناءات مشتقّة من الصنف Exception سواء أكان ذلك بصورة مباشرة أو غير مباشرة. يمكن تعريف أصناف الاستثناءات لتؤدي نفس العمل الذي يؤدّيه أيّ صنف آخر، ولكنّها تكون في العادة بسيطة، وتقدّم في أغلب الأحيان عددًا من الخاصيات التي تسمح لمعالجات الاستثناءات باستخراج المعلومات الخاصة بالخطأ. عند إنشاء وحدة لها القدرة على إطلاق استثناءات مختلفة، فمن الشائع إنشاء صنف أساس للاستثناءات يُعرّف بواسطة تلك ...

الاستثناءات المعرفة من طرف المستخدم

يمكن للمستخدم إنشاء صنف استثناء جديد (راجع قسم الأصناف في بايثون للمزيد من المعلومات)، ويجب أن تكون الاستثناءات مشتقّة من الصنف Exception سواء أكان ذلك بصورة مباشرة أو غير مباشرة. يمكن تعريف أصناف الاستثناءات لتؤدي نفس العمل الذي يؤدّيه أيّ صنف آخر، ولكنّها تكون في العادة بسيطة، وتقدّم في أغلب الأحيان عددًا من الخاصيات التي تسمح لمعالجات الاستثناءات باستخراج المعلومات الخاصة بالخطأ. عند إنشاء وحدة لها القدرة على إطلاق استثناءات مختلفة، فمن الشائع إنشاء صنف أساس للاستثناءات يُعرّف بواسطة تلك ...

التابع IO.read_nonblock‎ في روبي

يقرأ التابع read_nonblock عددًا محدَّدًا من البايتات من المجرى الذي استُدعي معه باستخدام استدعاء النظام read(2)‎ بعد تعيين الراية O_NONBLOCK لواصف الملف (file descriptor) الأساسي. يستدعي التابع read_nonblock استدعاء النظام read(2)‎. كما أنه يتسبب في كل الأخطاء التي يسببها استدعاء النظام read(2)‎، مثل Errno::EWOULDBLOCK و Errno::EINTR وغيرهما . لذا، يجب على المُستدعي التعامل مع هذه الأخطاء. إن كان الاستثناء هو أحد الاستثنائين Errno::EWOULDBLOCK أو Errno::EAGAIN، فسيتم توسيعه بواسطة التابع WaitReadable، حتى يمكن استخدامه لمعالجة الاستثناءات لأجل إعادة استدعاء التابع read_nonblock. يطلق التابع ...

عرض (50 السابقة | 50 التالية) (20 | 50 | 100 | 250 | 500).