*例外とエラークラス [#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)