例外とエラークラス

Throwableクラス

catchブロックには必ずThrowable型のパラメータが1つなければいけません。
Throwableはすべての例外、エラークラスのスーパークラスです。

Throwableコンストラクタ

#codeprettify{{ Throwable() Throwable(String message); }}

引数説明
message問題を通知する文字列メッセージです。


関数説明
String getMessage()コンストラクタから提供される文字列を取得する
void printStackTrace()スタック情報を表示する

Errorクラス

ErrorクラスはThrowableクラスを拡張します。
ErrorクラスにはJVMで検出される重大な問題を表すサブクラスが10以上あります。

Exceptionクラス

ExceptionクラスはThrowableクラスを拡張します。
Exceptionは実行時に発生する様々な問題を表すサブクラスがあります。

Exceptionコンストラクタ

#codeprettify{{ Exception() Exception(String message) }}

引数説明
message問題を通知する文字列メッセージです。

Exceptionクラスの主なサブクラス

クラス説明
ClassNotFoundExceptionクラスが見つからない
IllegalAccessExceptionクラスに不正にアクセスしました
InstantiationExceptionインターフェイス、または抽象クラスをインスタンス化しようとした
NoSuchFieldExceptionフィールドが見つからない
NoSuchMethodExceptionメソッドが見つからない
RuntimeException実行時に例外が発生した

RuntimeExceptionクラス

RuntimeExceptionクラスはExceptionのもっとも重要なサブクラスです。

RuntimeExceptionのサブクラス

クラス説明
ArrayIndexOutOfBoundsException配列のインディックスが実在しない要素を指した
ArithmeticException算術例外が発生した(0除算など)
ClassCastException不正なキャストを試みた
NegativeArraySizeException配列のサイズとして負の値を使った
NullPointerException空のオブジェクトのフィールド、またはメソッドにアクセスを試みた
NumberFormatException整数の形式が不正だった
SecurityExceptionセキュリティ違反のため操作が拒否された
StringIndexOutBoundsException文字列のインディックスが文字列の領域をはみ出した


#codeprettify{{ class PrintStaticTraceDemo{

   public static void main(String args[]){
       try{
           a();
       }catch(ArithmeticException e){
           e.printStackTrace();     //スタック情報の表示
       }
   }
   public static void a(){
       try{
           b();
       }catch(NullPointerException e){
           e.printStackTrace();     //スタック情報の表示
       }
   }
   public static void b(){
       try{
           c();
       }catch(NullPointerException e){
           e.printStackTrace();     //スタック情報の表示
       }
   }
   public static void c(){
       try{
           d();
       }catch(NullPointerException e){
           e.printStackTrace();     //スタック情報の表示
       }
   }
   public static void d(){
       try{
           int i = 1;
           int j = 0;
           System.out.println(i/j);        //ここでエラーが発生する。
       }catch(NullPointerException e){
           e.printStackTrace();     //スタック情報の表示
       }
   }

} }}

結果

java.lang.ArithmeticException: / Zero
        at PrintStackTraceDemo.d(PrintStackTraceDemo.java:43)
        at PrintStackTraceDemo.c(PrintStackTraceDemo.java:32)
        at PrintStackTraceDemo.b(PrintStackTraceDemo.java:23)
        at PrintStackTraceDemo.a(PrintStackTraceDemo.java:25)
        at PrintStackTraceDemo.main(PrintStackTraceDemo.java:5)

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-12-08 (木) 20:28:31