الفرق بين المراجعتين لصفحة: «Ruby/Kernel/exit»

من موسوعة حسوب
< Ruby‏ | Kernel
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>exit‎</code> الخاص بالصنف <code>Kernel</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف...'
 
ط مراجعة وتدقيق
 
(3 مراجعات متوسطة بواسطة مستخدم واحد آخر غير معروضة)
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Kernel]]
[[تصنيف: Ruby Kernel]]
 
يبدأ التابع <code>exit</code> عملية إنهاء البرنامج في روبي، عن طريق إطلاق استثناء <code>[[Ruby/SystemExit|SystemExit]]</code>. من الممكن التقاط هذا الاستثناء. <syntaxhighlight lang="ruby">begin
يبدأ إنهاء البرنامج النصي Ruby عن طريق رفع استثناء <code>SystemExit</code>. قد يتم اكتشاف هذا الاستثناء. يتم استخدام المعلمة الاختيارية لإرجاع رمز الحالة إلى بيئة الاستدعاء. تشير الحالة <code>true</code> و <code>FALSE</code> إلى النجاح والفشل على التوالي.  يعتمد تفسير قيم الأعداد الصحيحة الأخرى على النظام.
  exit
 
  puts "never get here"
ينتج عنه:
rescue SystemExit
<syntaxhighlight lang="ruby">rescued a SystemExit exception
  puts "rescued a SystemExit exception"
after begin block‎</syntaxhighlight>
end
فقط قبل الإنهاء ، ينفذ روبي أي من وظائف <code>at_exit</code> (انظر Kernel :: at_exit) ويدير أي شيء نهائي (راجع <code>ObjectSpace.define_finalizer</code>).
puts "after begin block"</syntaxhighlight>ينتج عند تنفيذه:<syntaxhighlight lang="text">rescued a SystemExit exception
 
after begin block‎</syntaxhighlight>قبل الإنهاء مباشرة، تنفذ روبي كل التوابع والكتل المرتبطة بالشيفرة عبر التابع <code>[[Ruby/Kernel/at exit|at_exit]]</code>، وتنفِّذ كل الكائنات المُنهيَة (object finalizers، راجع <code>[[Ruby/ObjectSpace/define finalizer|ObjectSpace.define_finalizer]]</code>).<syntaxhighlight lang="ruby">at_exit { puts "at_exit function" }
ينتج عنه:
ObjectSpace.define_finalizer("string",  proc { puts "in finalizer" })
<syntaxhighlight lang="ruby">at_exit function
exit</syntaxhighlight>ينتج عند تنفيذ الشيفرة:<syntaxhighlight lang="text">at_exit function
in finalizer‎</syntaxhighlight>
in finalizer‎</syntaxhighlight>
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">exit(status=true)
<syntaxhighlight lang="ruby">exit(status=true)
سطر 22: سطر 20:
==المعاملات==
==المعاملات==
===<code>status‎</code>===
===<code>status‎</code>===
 
يُستخدم هذا المعامل الاختياري لإعادة رمز الحالة (status code) الخاص ببيئة الاستدعاء. تشير الحالتان <code>true</code> و <code>FALSE</code> إلى النجاح والفشل على التوالي.  ويعتمد تفسير قيم الأعداد الأخرى على النظام المُستخدم.
 
==القيمة المُعادة==
 
==أمثلة==
مثال على استخدام التابع <code>exit‎</code>:
<syntaxhighlight lang="ruby">begin
  exit
  puts "never get here"
rescue SystemExit
  puts "rescued a SystemExit exception"
end
puts "after begin block"
</syntaxhighlight>
==انظر أيضا==
==انظر أيضا==
* التابع <code>[[Ruby/Integer/X_name_X|X_name_X]]</code>:  
*التابع <code>[[Ruby/Kernel/exit-21|exit!‎]]</code>: ينهي العملية على الفور.
*التابع <code>[[Ruby/Kernel/at exit|at_exit]]</code>: يحول الكتلة البرمجية المعطاة إلى كائن من النوع <code>Proc</code>.
==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-exit قسم التابع exit‎ في الصنف Kernel‎ في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-exit قسم التابع exit‎ في الصنف Kernel‎ في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 12:52، 15 نوفمبر 2018

يبدأ التابع 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

ينتج عند تنفيذ الشيفرة:

at_exit function
in finalizer‎

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

exit(status=true)
Kernel::exit(status=true)
Process::exit(status=true)

المعاملات

status‎

يُستخدم هذا المعامل الاختياري لإعادة رمز الحالة (status code) الخاص ببيئة الاستدعاء. تشير الحالتان true و FALSE إلى النجاح والفشل على التوالي. ويعتمد تفسير قيم الأعداد الأخرى على النظام المُستخدم.

انظر أيضا

  • التابع exit!‎: ينهي العملية على الفور.
  • التابع at_exit: يحول الكتلة البرمجية المعطاة إلى كائن من النوع Proc.

مصادر