الفرق بين المراجعتين لصفحة: «Ruby/Exception/backtrace»
أنشأ الصفحة ب'{{DISPLAYTITLE:التابع <code>Exception.backtrace</code> في روبي}} يعيد التّابع <code>backtrace</code> أيَّ تتبع عكسي (backtrace) مرت...' |
طلا ملخص تعديل |
||
سطر 15: | سطر 15: | ||
مثالٌ عن استخدام التابع <code>backtrace</code>:<syntaxhighlight lang="ruby"> | مثالٌ عن استخدام التابع <code>backtrace</code>:<syntaxhighlight lang="ruby"> | ||
def a | def a | ||
raise "boom" | |||
end | end | ||
def b | def b | ||
a() | |||
end | end | ||
begin | begin | ||
b() | |||
rescue => detail | rescue => detail | ||
print detail.backtrace.join("\n") | |||
end | end | ||
</syntaxhighlight>سيعطي هذا المثال عند تنفيذه الناتج التالي:<syntaxhighlight lang="ruby"> | </syntaxhighlight>سيعطي هذا المثال عند تنفيذه الناتج التالي:<syntaxhighlight lang="ruby"> | ||
prog.rb:2:in `a' | prog.rb:2:in `a' | ||
prog.rb:6:in `b' | prog.rb:6:in `b' | ||
prog.rb:10 | prog.rb:10 | ||
</syntaxhighlight> | </syntaxhighlight> |
المراجعة الحالية بتاريخ 19:05، 18 أكتوبر 2018
يعيد التّابع backtrace
أيَّ تتبع عكسي (backtrace) مرتبط بالاستثناء.
التتبع العكسي (backtrace) هو مصفوفةٌ من السّلاسل النصية، تحوي كل واحدةٍ منها إمّا "filename:lineNo: in 'method''' أو ".filename:lineNo''.
البنية العامة
backtrace → array
القيم المعادة
تُعاد مصفوفة تمثل التتبع العكسي.
أمثلة
مثالٌ عن استخدام التابع backtrace
:
def a
raise "boom"
end
def b
a()
end
begin
b()
rescue => detail
print detail.backtrace.join("\n")
end
سيعطي هذا المثال عند تنفيذه الناتج التالي:
prog.rb:2:in `a'
prog.rb:6:in `b'
prog.rb:10
انظر أيضا
- التابع
backtrace_locations
: يُعيد أي تتبع عكسي (backtrace) مرتبط بالاستثناء. - التابع
set_backtrace
: يضبط معلومات المصفوفةbacktrace
الخاصة بكائن الاستثناء. - التابع
exception
: يُعيد المُستقبل (receiver).