前人未踏の領域へ アプリ開発編

Android, iOSアプリ開発に関する調査メモ置き場。ほとんどAndroid。はてなダイアリーから移行したため古い記事にはアプリ以外も含まれます。

例外処理書式

参照用メモ

基本

begin
  #通常処理
  raise #例外送信
rescue IOError  ex
  #例外発生時の処理1
  puts "#{ex.class}: #{ex.message}"
  puts "#{ex.backtrace}"
rescue TypeError, ArgumentError => ex2
  #例外発生時の処理2
  retry #コードブロックの再実行
rescue StandardError => ex3
  #例外発生時の処理3
else
  #例外が発生しなかった場合の処理
ensure
  #例外の発生有無に関わらず実行される処理
end

ルール

  • すべての例外はExceptionクラスを継承する。
  • 標準例外はStandardErrorを継承する。
  • else,ensureは省略可能
  • Exceptionオブジェクト名は$! 取得可能。別名をつける事も可能
  • Exceptionクラスはmessageとbacktraceメソッドを持つ
  • 複数の例外キャッチも可能
  • retryを使って同じ処理をもう一度トライすることも可能
  • rescueで例外クラスを省略するとStandardErrorを処理する