class DEBUGGER__::CatchBreakpoint
属性
last_exc[R]
公共类方法
new(pat, cond: nil, command: nil, path: nil) 点击以切换源代码
调用超类方法
DEBUGGER__::Breakpoint::new
# File debug-1.10.0/lib/debug/breakpoint.rb, line 305 def initialize pat, cond: nil, command: nil, path: nil @pat = pat.freeze @key = [:catch, @pat].freeze @last_exc = nil super(cond, command, path) end
公共实例方法
description() 点击以切换源代码
# File debug-1.10.0/lib/debug/breakpoint.rb, line 337 def description "#{@last_exc.inspect} is raised." end
setup() 点击以切换源代码
# File debug-1.10.0/lib/debug/breakpoint.rb, line 313 def setup @tp = TracePoint.new(:raise){|tp| exc = tp.raised_exception next if SystemExit === exc next if skip_path?(tp.path) next if !safe_eval(tp.binding, @cond) if @cond should_suspend = false exc.class.ancestors.each{|cls| if @pat === cls.name should_suspend = true @last_exc = exc break end } suspend if should_suspend } end
to_s() 点击以切换源代码
# File debug-1.10.0/lib/debug/breakpoint.rb, line 333 def to_s "#{generate_label("Catch")} #{@pat.inspect}" end