例外処理

exception-handling.png

例外とは

例外は何らかの例外的な状態、またはエラーが生じたことを示す合図のこと。
例外をthrow(投げる)とは、例外状態であることを合図することである。
catchとは、例外を受け取って処理することである。つまり、
「その状態から回復するために必要な処理をする」とうことである。

例外型

javaでは例外はオブジェクトによって表現される Cみたいにただのエラーコードじゃないのだ。
えー、めんどくさっって思うかもしれないけど、
オブジェクトだから良いこともある。
データを格納することができるのだ。
メソッドだって定義できる。
そう、ただの文字コードじゃなくって、きちんとしたエラーメッセージも持つことができる。
ふーん、だったら、androidOpenGL ESのエラーも、立派な例外クラス持ってればいいのに。
なんでCみたく未だにエラーコードなんだ。いちいちgetGLErrorString()するのめんどうくさいよ。

例外メッセージを取り出すには

getMessage()メソッドを使用する。
例外型はすべてjava.lang.Throwableの派生クラスである。
そのサブクラスも大きくわけて2種類ある。

java.lang.Error 一般に回復不能なエラー catchしようが回復不可能
java.lang.Throwable Errorほど致命的ではない。

チェック例外と未チェック例外

ErrorとThrowableという分別の他に、もう1種類例外の分別法がある。
それが、チェック済みか、未チェックか、だ。

名前 特徴 書き方
未チェック例外 予測不可能
チェック例外 厳密に定義された特定の状況のみで起こる throwsを使ってメソッドシグネチャの中で例外を宣言する

Androidの場合

Java C++
  try{
     ...
  } catch (Exception e) {
     e.printStackTrace();
  }
  try{
     ...
  } catch (Exception e) {
     Log.e(LOG_TAG, "message", e);
  }


android

サポートサイト Wikidot.com android