الفرق بين المراجعتين لصفحة: «Ruby/Thread/report on exception-i»

من موسوعة حسوب
< Ruby‏ | Thread
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: تابع النسخة <code>report_on_exception‎</code> الخاص بالصنف <code>Thread</code> في روبي}}</noinclude> تصن...'
 
ط مراجعة وتدقيق.
 
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: تابع النسخة <code>report_on_exception‎</code> الخاص بالصنف <code>Thread</code> في روبي}}</noinclude>
<noinclude>{{DISPLAYTITLE: تابع النسخة <code>Thread.report_on_exception‎</code> في روبي}}</noinclude>
[[تصنيف: Ruby]]
[[تصنيف: Ruby]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Thread]]
[[تصنيف: Ruby Thread]]
يعيد التابع <code>report_on_exception</code> حالة تقرير الاستثناء "report on exception". القيمة الافتراضية هي <code>true</code> منذ روبي 2.5.
يعيد التابع <code>report_on_exception</code> حالة "التبليغ عند حصول استثناء" (report on exception) [[Ruby/Thread|للمهمة الفرعية]] المحلية.


كل [[Ruby/Thread|المهام الفرعية]] التي يتم إنشاؤها عندما تكون قيمة هذه الراية مساوية للقيمة <code>true</code> ستبعث رسالة على المجرى <code>stderr$</code> إذا أنهى استثناء ما [[Ruby/Thread|المهمة الفرعية]].
القيمة الافتراضية عند إنشاء [[Ruby/Thread|المهمة الفرعية]] هي قيمة الراية العامة <code>[[Ruby/Thread/report on exception|report_on_exception]]</code>.


يُستخدم هذا التابع  لإمساك الأخطاء في [[Ruby/Thread|المهمة الفرعية]] في وقت مبكر. لكن في بعض الحالات، قد لا ترغب في هذه المخرجات. هناك عدة طرق لتجنب المخرجات الزائدة:
يوجد أيضًا تابع صنف (class level method) لتعيين هذا الخيار لكل [[Ruby/Thread|المهام الفرعية]]؛ راجع صفحة <code>[[Ruby/Thread/report on exception|report_on_exception]]</code>.
* إذا لم يكن الاستثناء مقصودا، فأفضل خيار أمامك هو إصلاح سبب الاستثناء بحيث لا يُطلق بعدها.
* إذا لم يكن الاستثناء مقصودًا، فقد يكون من الأفضل معالجته بالقرب من الموضع الذي أطلق منه بدلاً من تركه ينهي [[Ruby/Thread|المهمة الفرعية]].
* في حال كان مُؤمّنا (guaranteed)، سيتم ضم (join) [[Ruby/Thread|المهمة الفرعية]]  عبر <code>[[Ruby/Thread/join|join]]</code> أو <code>[[Ruby/Thread/value|value]]</code>، بعد ذلك سيكون من الآمن تعطيل هذا التقرير عبر التعبير <code>Thread.current.report_on_exception = false</code> عند بدء تشغيل [[Ruby/Thread|المهمة الفرعية]]. لكن هذا قد يعالج الاستثناء في وقت متأخر، أو قد لا يٌعالج أبدا في حالة عدم ضم [[Ruby/Thread|المهمة الفرعية]] في حا كانت [[Ruby/Thread|المهمة الفرعية]] الرئيسية (parent thread) معطلة.
انظر أيضا صفحة <code>[[Ruby/Thread/report_on_exception-3D|report_on_exception=‎]]</code>.
 
يوجد أيضًا تابع نسخة (instance level method) لتعيين هذا الخيار ل[[Ruby/Thread|مهمة فرعية]] معينة، راجع صفحة <code>[[Ruby/Thread/report on exception-i|report_on_exception]]</code>.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">report_on_exception→ true or false‎</syntaxhighlight>
<syntaxhighlight lang="ruby">report_on_exception→ true or false‎</syntaxhighlight>
==القيمة المُعادة==
==القيمة المعادة==
يعيد التابع <code>report_on_exception</code> قيمة منطقية تمثل حالة تقرير الاستثناء "report on exception".  
تعاد قيمة منطقية تمثل حالة "التبليغ عند حصول استثناء".
 
==أمثلة==
مثال على استخدام التابع <code>report_on_exception‎</code>:
<syntaxhighlight lang="ruby">Thread.new { 1.times { raise } }‎</syntaxhighlight>سينتج هذا المثال المخرجات التالية في المجرى ‎<code>$stderr</code>:<syntaxhighlight lang="ruby">#<Thread:...> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
        2: from -e:1:in `block in <main>'
        1: from -e:1:in `times'‎</syntaxhighlight>
==انظر أيضا==
==انظر أيضا==
* التابع <code>[[Ruby/Thread/raise|raise]]</code>: يطلق التابع <code>raise</code> استثناء من [[Ruby/Thread|مهمة فرعية]] معينة. لا يلزم أن يكون الُمستدعي (caller) من <code>thr</code>. انظر صفحة <code>[[Ruby/Kernel/raise|Kernel#raise]]</code> لمزيد من المعلومات.
*التابع <code>[[Ruby/Thread/raise|raise]]</code>: يطلق استثناء من [[Ruby/Thread|مهمة فرعية]] معينة.
* التابع <code>[[Ruby/Thread/report_on_exception-3D|report_on_exception=‎]]</code>: يُعيد التابع <code>report_on_exception=</code> الحالة الجديدة.
*التابع <code>[[Ruby/Thread/report on exception-3D-i|report_on_exception=‎]]</code>: يضبط عند استدعائه بالشكل <code>report_on_exception= boolean</code> حالة "التبليغ عند حصول استثناء" (report on exception) للمهمة الفرعية المحلية المعطاة إلى القيمة <code>boolean</code>.
==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/Thread.html#method-i-report_on_exception قسم التابع report_on_exception‎ في الصنف Thread‎ في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/Thread.html#method-i-report_on_exception قسم التابع report_on_exception‎ في الصنف Thread‎ في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 08:02، 6 ديسمبر 2018

يعيد التابع 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) للمهمة الفرعية المحلية المعطاة إلى القيمة boolean.

مصادر