الفرق بين المراجعتين ل"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).

مصادر