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


def b
def b
 
  a()
 a()
 
end
end


begin
begin
 
  b()
 b()
 
rescue => detail
rescue => detail
 
  print detail.backtrace.join("\n")
 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).

مصادر