throws
異常終了が発生したメソッドで異常終了を検知できましたが、異常終了をまとめて管理したい場合があります。そのために異常終了を呼び出し元へ引き渡す「throws」命令があります。
プログラム例
プログラムで見ていきましょう。クラスMain,Subを次のように修正し、実行してください
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
package step13; public class Main { public static void main(String[] args) { try { Sub sub = new Sub(); } catch(ArrayIndexOutOfBoundsException e) { System.out.println("エラーが発生しました。"); System.out.println(e.getMessage()); } catch(Exception e) { System.out.println("何らかのエラーが発生しました。"); System.out.println(e.getMessage()); } finally { System.out.println("finally"); } } } |
1 2 3 4 5 6 7 8 9 10 |
package step13; public class Sub { public Sub() throws ArrayIndexOutOfBoundsException{ int[] n = new int[5]; System.out.println(n[5]); System.out.println("Sub終了します。"); } } |
クラスMainでtry~catch命令が記述されています。そしてクラスSubの4行目の「throws」で 異常終了「ArrayIndexOutOfBoundsException」が発生した場合に呼び出し元で処理するように定義しています。
4 |
public Sub() throws ArrayIndexOutOfBoundsException{ |