الفرق بين المراجعتين لصفحة: «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>[[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
.