2012-11-23 2 views
1

rescue- 오류 및 사용자 지정 메서드 호출없이 오류 메시지와 백 트레이스가 표시되는 방식을 변경하려고합니다. 이것을 할 수있는 방법이 있습니까? 재정의 될 수있는 오류 메시지가 표시 될 때 호출되는 메서드가 있습니까? 그것이 Ruby의 내장 된 부분이라면 누군가가 오류 메시지와 백 트레이스를 포맷하는 관련 C 코드를 가르쳐 줄 수 있습니까?오류 메시지가 표시되는 방식을 변경하는 방법이 있습니까?

+0

흥미로운 질문이지만 호기심 때문에 시작/복구 블록으로 스크립트의 기본 방법을 보호하는 것이 왜 도움이되지 않습니까? – tokland

+0

@tokland 내가 쓰는 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 

이것은 구문 오류에는 효과가 없지만, 대부분의 경우에는 효과가있다.

관련 문제