2012-11-23 46 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 

這不會對語法錯誤有效,但對於大多數其他情況,它將起作用。

相關問題