12

例外があり、例外が捕捉されなかったときの標準の ruby​​ 出力とまったく同じe文字列に変換したいと考えています。stderr

最初のコードでスタック トレースの順序が正しくなく、インデントが正しくありません。

自分のコードを書くのではなく、「ワンライナー」を見たいと思っています。これどうやってやるの?

4

3 に答える 3

20

これは同じになります。

puts "#{$@.first}: #{$!.message} (#{$!.class})", $@.drop(1).map{|s| "\t#{s}"}

または、を使用してe

puts "#{e.backtrace.first}: #{e.message} (#{e.class})", e.backtrace.drop(1).map{|s| "\t#{s}"}
于 2012-11-09T16:19:23.973 に答える