예 : 여기CommandLine :: Application은 내 예외를 삼킨다. 피하는 법?
$ ruby test.rb
ERROR: foo
그리고 문제가 시작에
require 'commandline'
class App < CommandLine::Application
def initialize
end
def main
raise 'foo'
end
end
결과 : 개발하는 동안 항상 내 코드에서 깊은 어딘가에 던져 예외가있을 것입니다 내가 스택 트레이스를 볼 필요가 일부 난도질하지 메시지. rampion에
덕분에, 지금은이 솔루션을 사용하고 있습니다 :
require 'commandline'
class App < CommandLine::Application
def initialize
end
def main
raise 'foo'
rescue Exception => e
puts format_like_real_exception e
end
def format_like_real_exception(e)
s = ''
b = e.backtrace
s << b.shift << ': ' << e.message << "\n"
b.each { |l| s << "\t" << l << "\n" }
s
end
end
포맷터가 필요하지 않습니다 물론,하지만 난 그들이 원래 서식하고있는 방법을 선호합니다.
, 내가 너무 내 Q와 포맷터에 추가. – mark