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