&tag(Ruby/例外処理);
*目次 [#j4898261]
#contents
*参考情報 [#c7abcc9a]

*基礎知識 [#s6410827]
-$!が例外オブジェクト、$@がスタックトレースを表す。
-以下の例外の型を指定しない方法で例外を補足する場合、StandardErrorのサブクラスしか補足できない。
#pre{{
begin
rescue => e
end
}}
-Exceptionを指定すれば全ての例外が補足できる。
#pre{{
begin
resucue Exception => e
end
}}
-Exceptionをrescueすると、Ctrl-Cなどもtrapしてしまいこまったことになるかも。その場合[[exception - Capturing Ctrl-c in ruby - Stack Overflow:http://stackoverflow.com/questions/2089421/capturing-ctrl-c-in-ruby]]が参考になる。
#pre{{
rescue Exception => e
  # ...
  raise
end
}}
#pre{{
rescue SystemExit, Interrupt
  raise
rescue Exception => e
  #...
end
}}

*例外の表示方法 [#g6351fa1]
-[[The simple way to print exceptions in Ruby | coderrr:http://coderrr.wordpress.com/2008/11/07/the-simple-way-to-print-exceptions-in-ruby/]]
#pre{{
rescue Exception => e
puts e.message, e.backtrace
end

rescue Exception
  puts $!, $@
end
}}


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS