2012-11-23 44 views
1

我想更改错误消息及其回溯的显示方式,而不会出现rescue-发生错误并调用自定义方法。有没有办法做到这一点?是否有一个方法在显示可覆盖的错误消息时调用?如果它是Ruby的内置部分,是否有人能指向相关的C代码来格式化错误消息和回溯?有没有办法改变错误信息的显示方式?

+0

这是一个有趣的问题,但出于好奇,为什么用开始/救援块保护脚本的主要方法不是一种选择? – tokland

+0

@tokland因为我希望这是我写的任何Ruby脚本的默认行为。我不想为每个Ruby脚本编写'rescue'。至少,我将不得不包含进行修改的相关文件。 – sawa

+2

退房http://stackoverflow.com/questions/10521559/registering-handler-for-unhandled-exceptions – samuil

回答

0

matugm对samuil相关问题的回答指出了我的方式。我可以这样做:

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

这不会对语法错误有效,但对于大多数其他情况,它将起作用。

相关问题