Подтвердить что ты не робот

Есть ли способ запустить отладчик Ruby для исключения?

Есть ли способ запустить отладчик Ruby Ruby всякий раз, когда код выдает исключение, без того, чтобы я обменивал код следующим образом:

begin
  #do something
rescue
  debugger
end

Я хотел бы иметь его таким образом, что если часть do something вызывает исключение, начнется отладчик. Было бы неплохо не модифицировать код, чтобы добавлять блоки восстановления во всём.

4b9b3361

Ответ 1

Я наткнулся на эту страницу: посмертная отладка. Выполнение этого действия:

Debugger.start(:post_mortem => true)

получает меня туда, куда я хочу.

Ответ 3

require 'ruby-debug'
class Exception
  alias original_initalize initialize
  def initialize(*args)
    original_initalize(*args)
    debugger
  end
end

Это запустит исходное исключение, а также отлаживатель вызова

Ответ 4

если вы используете ruby-debug (и похоже, что это так), вы можете установить catchPoints для требуемого исключения.

 (rdbg) catch Exception

например

Ответ 5

В RubyMine 2.0.x перейдите в Run → View Breakpoints и нажмите "Ruby Exception Breakpoints", затем добавьте тип интересующего вас исключения...

В NetBeans и других Ruby IDE должно быть что-то похожее.

BTW, RubyMine - ЛУЧШИЙ!