class DEBUGGER__::CatchBreakpoint - debug: Ruby Standard Library Documentation

# class DEBUGGER__::CatchBreakpoint

### Attributes

last_exc[R]

### Public Class Methods

new(pat, cond: nil, command: nil, path: nil) click to toggle source
Calls superclass method `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

### Public Instance Methods

description() click to toggle source

    # File debug-1.10.0/lib/debug/breakpoint.rb, line 337
    def description
      "#{@last_exc.inspect} is raised."
    end

setup() click to toggle source

    # 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() click to toggle source

    # File debug-1.10.0/lib/debug/breakpoint.rb, line 333
    def to_s
      "#{generate_label("Catch")} #{@pat.inspect}"
    end