*例外とエラークラス [#wd486968]

#contents

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


''Throwableコンストラクタ''
#codeprettify{{  
Throwable()
Throwable(String message);
}}

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

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

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

**Exceptionクラス [#j842e57c]
ExceptionクラスはThrowableクラスを拡張します。~
Exceptionは実行時に発生する様々な問題を表すサブクラスがあります。~
~
''Exceptionコンストラクタ''
#codeprettify{{  
Exception()
Exception(String message)
}}

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

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

**RuntimeExceptionクラス [#k47dd2f0]
RuntimeExceptionクラスはExceptionのもっとも重要なサブクラスです。~

''RuntimeExceptionのサブクラス''
|クラス|説明|h
|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