2012-11-23 3 views
1

Я хочу изменить способ отображения сообщений об ошибках, и их обратная линия отображается без rescue -испоминания об ошибках и вызова пользовательского метода. Есть ли способ сделать это? Существует ли метод, который вызывается при отображении сообщений об ошибках, которые могут быть переопределены? Если это встроенная часть Ruby, может кто-то указать мне на соответствующий код C, который форматирует сообщения об ошибках и обратную линию?Есть ли способ изменить способ отображения сообщений об ошибках?

+0

Это интересный вопрос, но из любопытства, почему защита основного метода скрипта с помощью блока «начало/спасение» не является вариантом? – tokland

+0

@tokland Потому что я хочу, чтобы это было поведение по умолчанию для любого написанного мной Ruby-скрипта. Я не хочу писать «спасение» для каждого скрипта Ruby. По крайней мере, я должен был бы включить соответствующий файл, который делает модификацию. – sawa

+2

Ознакомьтесь с http://stackoverflow.com/questions/10521559/registering-handler-for-unhandled-exceptions – samuil

ответ

0

Ответ matugm на вопрос, связанный с нами, указал мне путь. Я могу это сделать:

at_exit do 
    print_the_altered_error_message($!) if $! and !$!.kind_of?(SystemExit) 
    $stderr.reopen(IO::NULL) 
end 

Это не будет эффективным для синтаксических ошибок, но и для большинства других случаев, он будет работать.

Смежные вопросы