例:ここCommandLine :: Applicationは私の例外をメインで呑み込み、避ける方法は?
$ ruby test.rb
ERROR: foo
し、問題が開始さで
require 'commandline'
class App < CommandLine::Application
def initialize
end
def main
raise 'foo'
end
end
結果:開発中は常に私のコードに深いどこかで発生した例外があるだろうと私はスタックトレースを確認する必要があり、いくつかのマングルされていませんメッセージ。 ホタルブクロへ
おかげで、私は今、このソリューションを使用しています:もちろん
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