Там какой-либо путь состоит в том, чтобы запустить отладчик Ruby на исключении?

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

begin
  #do something
rescue
  debugger
end

Я хотел бы иметь его таким способом который если do something часть повышает исключение, отладчик запустится. Это было бы хорошо не, необходимость изменить код для добавления начинает спасательные блоки на всем протяжении.

12
задан Geo 24 February 2010 в 16:30
поделиться

5 ответов

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

Debugger.start(:post_mortem => true)

приводит меня туда, куда я хочу.

4
ответ дан 2 December 2019 в 19:54
поделиться
6
ответ дан 2 December 2019 в 19:54
поделиться

В RubyMine 2.0.x выберите «Выполнить» -> «Просмотр точек останова» и щелкните вкладку «Точки останова для исключений Ruby», затем добавьте тип интересующего вас исключения ...

В NetBeans и других устройствах должно быть что-то подобное. Думаю, Ruby IDE.

Кстати, RubyMine - ЛУЧШИЙ!

2
ответ дан 2 December 2019 в 19:54
поделиться

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

 (rdbg) catch Exception

например

2
ответ дан 2 December 2019 в 19:54
поделиться
require 'ruby-debug'
class Exception
  alias original_initalize initialize
  def initialize(*args)
    original_initalize(*args)
    debugger
  end
end

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

3
ответ дан 2 December 2019 в 19:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: