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

من موسوعة حسوب
< Ruby‏ | Kernel
اذهب إلى التنقل اذهب إلى البحث
سطر 3: سطر 3:
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Kernel]]
 
[[تصنيف: Ruby Kernel]]
يبدأ التابع عملية إنهاء البرنامج النصي لروبي، عن طريق إطلاق استثناء <code>SystemExit</code>. من الممكن أن يتم احتواء هذا الاستثناء. يُستخدم الوسيط الاختياري لإعادة رمز الحالة (status code) لبيئة الاستدعاء. تشير الحالتان <code>true</code> و <code>FALSE</code> إلى النجاح والفشل على التوالي.  يعتمد تفسير قيم الأعداد الأخرى على النظام المُستخدم.
+
يبدأ التابع <code>exit</code> عملية إنهاء البرنامج النصي لروبي، عن طريق إطلاق استثناء <code>SystemExit</code>. من الممكن إمساك هذا الاستثناء.  
  
ينتج:
+
يُستخدم الوسيط الاختياري لإعادة رمز الحالة (status code) الخاص ببيئة الاستدعاء. تشير الحالتان <code>true</code> و <code>FALSE</code> إلى النجاح والفشل على التوالي.  ويعتمد تفسير قيم الأعداد الأخرى على النظام المُستخدم.<syntaxhighlight lang="ruby">begin
<syntaxhighlight lang="ruby">rescued a SystemExit exception
+
  exit
 +
  puts "never get here"
 +
rescue SystemExit
 +
  puts "rescued a SystemExit exception"
 +
end
 +
puts "after begin block"</syntaxhighlight>
 +
ينتج عنه:<syntaxhighlight lang="ruby">rescued a SystemExit exception
 
after begin block‎</syntaxhighlight>
 
after begin block‎</syntaxhighlight>
قبل الإنهاء مباشرة، تنفذ روبي كل توابع <code>at_exit</code> (انظر Kernel :: at_exit) وتنفذ كل الكائنات المنهية (object finalizers) (راجع <code>ObjectSpace.define_finalizer</code>).
+
قبل الإنهاء مباشرة، تنفذ روبي كل توابع <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" })
ينتج:
+
exit</syntaxhighlight>
<syntaxhighlight lang="ruby">at_exit function
+
ينتج عنه:<syntaxhighlight lang="ruby">at_exit function
 
in finalizer‎</syntaxhighlight>
 
in finalizer‎</syntaxhighlight>
 
==البنية العامة==
 
==البنية العامة==
سطر 20: سطر 26:
 
===<code>status‎</code>===
 
===<code>status‎</code>===
  
 
+
يُستخدم  لإعادة رمز الحالة (status 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/Kernel/exec|exec]]</code>: يستبدل التابع العملية الحالية عن طريق تشغيل الأمر الخارجي المعطى، والذي يمكن أن يأخذ أحد الأشكال التالية:
+
* التابع <code>[[Ruby/Kernel/exit-21|exit!]]</code>: ينهي العملية على الفور.
* التابع <code>[[Ruby/Kernel/exit-21|exit!]]</code>: ينهي العملية على الفور. لا يتم تنفيذ أي معالجات إنهاء (exit handlers). تعاد الحالة إلى النظام الأساسي باعتبارها حالة الخروج (exit status).
 
  
 
==مصادر==
 
==مصادر==
 
*[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‎ في توثيق روبي الرسمي.]

مراجعة 19:45، 21 أكتوبر 2018

يبدأ التابع exit عملية إنهاء البرنامج النصي لروبي، عن طريق إطلاق استثناء SystemExit. من الممكن إمساك هذا الاستثناء.

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

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) الخاص ببيئة الاستدعاء.

انظر أيضا

  • التابع exit!‎: ينهي العملية على الفور.

مصادر