raise

例外をrescueできたので、今度はraiseしてみる。ただraiseするだけじゃつまんないので、自分でrescueして更にraise。

begin
  raise SyntaxError.new("test exception")
rescue SyntaxError => evar 
  begin
    raise SyntaxError.new(evar.message + " re-raised")
  rescue SyntaxError => evar2
    p evar2.backtrace
    raise
  end
end

実行したらこんな出力でした。

["test.rb:5"]
test.rb:5: test exception re-raised (SyntaxError)

上の行が p evar2.backtrace で出している部分で、下の行が勝手に出る部分らしい。backtraceはJavaのprintStackTraceみたいなものかと思ったんだけど違うのかな?よくわかんない。