الفرق بين المراجعتين ل"Ruby/Kernel/raise"

من موسوعة حسوب
< Ruby‏ | Kernel
اذهب إلى التنقل اذهب إلى البحث
ط (تدقيق.)
 
سطر 3: سطر 3:
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Kernel]]
 
[[تصنيف: Ruby Kernel]]
في حال عدم تمريرأي وسائط، سيطلق التابع <code>raise</code> استثناء في ‎<code>$!</code> أو يطلق الخطأ <code>RuntimeError</code> إن كان ‎<code>$!‎</code> يساوي <code>nil</code>. في حال تمرير وسيط واحد <code>String</code>، فسيطلق الخطأ <code>RuntimeError</code> بحيث يكون الوسيط الممرر <code>string</code> هو رسالة ذلك الخطأ. خلا ذلك، يجب أن يكون الوسيط الأول اسما للصنف <code>Exception</code> (أو كائنًا يعيد كائن <code>Exception</code> عند تلقيه رسالة <code>exception</code>). يحدد الوسيط الاختياري الثاني رسالة الاستثناء، أما الوسيط الثالث فهو مصفوفة تضم معلومات الاستدعاء.  
+
استدعاء التابع <code>raise</code> بدون تمرير أي معامل يُطلق الاستثناء في ‎<code>$!‎‎‎‎</code> أو يطلق الخطأ <code>[[Ruby/RuntimeError|RuntimeError]]</code> إذا كان ‎<code>$!‎</code> يساوي <code>nil</code>. في حال تمرير سلسلة نصية فقط، فسيُطلَق الخطأ<nowiki/>[[Ruby/RuntimeError|<code>RuntimeError</code>]] مع إظهار هذه السلسلة النصية كرسالة. خلا ذلك، يجب أن يكون الوسيط الأول اسم الصنف <code>[[Ruby/Exception|Exception]]</code> (أو كائنًا يعيد كائنًا من النوع <nowiki/>[[Ruby/Exception|<code>Exception</code>]] عند إرسال رسالة استثناء). يحدِّد الوسيط الاختياري الثاني الرسالة المرتبطة بالاستثناء، أما الوسيط الثالث فهو مصفوفة تضم معلومات الاستدعاء.  
  
تُمسك الاستثناءات بواسطة جملة <code>rescue</code> من كتل <code>begin...end</code>.
+
تُلتقَط الاستثناءات بواسطة الجملة <code>rescue</code> من الكتل <code>begin...end</code>.  
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="ruby">raise
 
<syntaxhighlight lang="ruby">raise
سطر 12: سطر 12:
 
==المعاملات==
 
==المعاملات==
 
===<code>string‎</code>===
 
===<code>string‎</code>===
رسالة الخطأ.
+
سلسلة نصية تمثل الرسالة المراد إظهارها عند إطلاق الاستثناء.
  
 
===<code>exception‎</code>===
 
===<code>exception‎</code>===
استثناء.
+
اسم الصنف <nowiki/>[[Ruby/Exception|<code>Exception</code>]] أو كائن يعيد كائنًا من الصنف <code>[[Ruby/Exception|Exception]]</code>.
  
 
===<code>array‎</code>===
 
===<code>array‎</code>===
سطر 25: سطر 25:
 
raise ArgumentError, "No parameters", caller‎</syntaxhighlight>
 
raise ArgumentError, "No parameters", caller‎</syntaxhighlight>
 
==انظر أيضا==
 
==انظر أيضا==
* التابع <code>[[Ruby/Kernel/fail|fail]]</code>: يطلق التابع <code>puts</code> استثناء أو خطأ.
+
* التابع <code>[[Ruby/Kernel/fail|fail]]</code>: يطلق استثناءً أو خطأً.
  
 
==مصادر==
 
==مصادر==
*[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-raise قسم التابع raise‎ في الصنف Kernel‎ في توثيق روبي الرسمي.]
+
*[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-raise قسم التابع raise‎ في الصنف Kernel‎ في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 08:07، 16 نوفمبر 2018

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

تُلتقَط الاستثناءات بواسطة الجملة rescue من الكتل begin...end.

البنية العامة

raise
raise(string)
raise(exception [, string [, array]])

المعاملات

string‎

سلسلة نصية تمثل الرسالة المراد إظهارها عند إطلاق الاستثناء.

exception‎

اسم الصنف Exception أو كائن يعيد كائنًا من الصنف Exception.

array‎

مصفوفة تضم معلومات الاستدعاء.

أمثلة

مثال على استخدام التابع raise‎:

raise "Failed to create socket"
raise ArgumentError, "No parameters", caller

انظر أيضا

  • التابع fail: يطلق استثناءً أو خطأً.

مصادر