الفرق بين المراجعتين لصفحة: «Ruby/TracePoint/new»
< Ruby | TracePoint
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>new</code> الخاص بالصنف <code>TracePoint</code> في روبي}}</noinclude> تصنيف: Ruby تصن...' |
لا ملخص تعديل |
||
سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby TracePoint]] | [[تصنيف: Ruby TracePoint]] | ||
يُعيد التابع <code>new</code> [[Ruby/TracePoint|متعقب]]ا | يُعيد التابع <code>new</code> [[Ruby/TracePoint|متعقب]]ا جديدًا، غير متاح افتراضيا. | ||
من أجل إتاحة التعقب، يجب عليك استخدام <code>[[Ruby/TracePoint/enable| | من أجل إتاحة التعقب، يجب عليك استخدام <code>[[Ruby/TracePoint/enable|enable]]</code><syntaxhighlight lang="ruby">trace = TracePoint.new(:call) do |tp| | ||
p [tp.lineno, tp.defined_class, tp.method_id, tp.event] | |||
end | |||
#=> #<TracePoint:disabled> | |||
trace.enable | |||
#=> false | |||
puts "Hello, TracePoint!" | |||
# ... | |||
# [48, IRB::Notifier::AbstractNotifier, :printf, :call] | |||
# ...</syntaxhighlight>إن أردت إلغاء التعقب، عليك استخدام <code>[[Ruby/TracePoint/disable|disable]]</code><syntaxhighlight lang="ruby">trace.disable | |||
</syntaxhighlight>راجع صفحة الصنف <code>[[Ruby/TracePoint/label-Events|TracePoint]]</code> للتعرف على الأحداث الممكنة ولمزيد من المعلومات. | |||
يجب إعطاء كتلة، وإلا سيُطلق الاستثناء <code>[[Ruby/ArgumentError|ArgumentError]]</code>. | |||
إذا لم يتم تضمين التابع <code>[[Ruby/TracePoint/trace|trace]]</code> في مرشح الأحداث (events filter) المعطاة، فسيُطلق الاستثناء <code>[[Ruby/RuntimeError|RuntimeError]]</code>.<syntaxhighlight lang="ruby">TracePoint.trace(:line) do |tp| | |||
p tp.raised_exception | |||
end | |||
#=> RuntimeError: 'raised_exception' not supported by this event | |||
</syntaxhighlight>إذا تم استدعاء التابع trace خارج كتلة، فسيُطلق <code>[[Ruby/RuntimeError|RuntimeError]]</code>.<syntaxhighlight lang="ruby">TracePoint.trace(:line) do |tp| | |||
$tp = tp | |||
end | |||
$tp.lineno #=> access from outside (RuntimeError) | |||
</syntaxhighlight>كما يُحظر الدخول من [[Ruby/Thread|المهام الفرعية]] الأخرى. | |||
إذا تم استدعاء التابع trace خارج كتلة، فسيُطلق <code>[[Ruby/RuntimeError|RuntimeError]]</code>. | |||
كما يُحظر الدخول من [[Ruby/Thread|المهام الفرعية]]. | |||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="ruby">new(*events) { |obj| block } → obj</syntaxhighlight> | <syntaxhighlight lang="ruby">new(*events) { |obj| block } → obj</syntaxhighlight> | ||
==المعاملات== | ==المعاملات== | ||
===<code>events</code>=== | ===<code>events</code>=== | ||
أحداث. | |||
==القيمة المُعادة== | ==القيمة المُعادة== | ||
يُعيد التابع <code>new</code> [[Ruby/TracePoint|متعقب]]ا جديدًا، : | |||
==انظر أيضا== | ==انظر أيضا== | ||
* التابع <code>[[Ruby/TracePoint/stat|stat]]</code>: يُعيد التابع <code>stat</code> المعلومات الداخلية لل[[Ruby/TracePoint|متعقب]] | * التابع <code>[[Ruby/TracePoint/stat|stat]]</code>: يُعيد التابع <code>stat</code> المعلومات الداخلية لل[[Ruby/TracePoint|متعقب]]. | ||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/TracePoint.html#method-c-new قسم التابع new في الصنف TracePoint في توثيق روبي الرسمي.] | *[http://ruby-doc.org/core-2.5.1/TracePoint.html#method-c-new قسم التابع new في الصنف TracePoint في توثيق روبي الرسمي.] |
مراجعة 22:34، 7 نوفمبر 2018
يُعيد التابع new
متعقبا جديدًا، غير متاح افتراضيا.
من أجل إتاحة التعقب، يجب عليك استخدام enable
trace = TracePoint.new(:call) do |tp|
p [tp.lineno, tp.defined_class, tp.method_id, tp.event]
end
#=> #<TracePoint:disabled>
trace.enable
#=> false
puts "Hello, TracePoint!"
# ...
# [48, IRB::Notifier::AbstractNotifier, :printf, :call]
# ...
إن أردت إلغاء التعقب، عليك استخدام disable
trace.disable
راجع صفحة الصنف TracePoint
للتعرف على الأحداث الممكنة ولمزيد من المعلومات.
يجب إعطاء كتلة، وإلا سيُطلق الاستثناء ArgumentError
.
إذا لم يتم تضمين التابع trace
في مرشح الأحداث (events filter) المعطاة، فسيُطلق الاستثناء RuntimeError
.
TracePoint.trace(:line) do |tp|
p tp.raised_exception
end
#=> RuntimeError: 'raised_exception' not supported by this event
إذا تم استدعاء التابع trace خارج كتلة، فسيُطلق RuntimeError
.
TracePoint.trace(:line) do |tp|
$tp = tp
end
$tp.lineno #=> access from outside (RuntimeError)
كما يُحظر الدخول من المهام الفرعية الأخرى.
البنية العامة
new(*events) { |obj| block } → obj
المعاملات
events
أحداث.
القيمة المُعادة
يُعيد التابع new
متعقبا جديدًا، :