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