初心者向けのJava講座です。一緒にJavaを勉強しませんか?
はじめてのJava入門初心者向けのJava講座 |
throw
先ほどのthrowsとよく似たものにthrowがあります。
throwは明示的に例外オブジェクトを他に渡したいときに使います。
記述の仕方は throwの後に渡したい例外オブジェクトを記述します。
記述例は以下のようになります。
throwの記述例
class Sample{ public static void main(String args[]){ try{ obj(); }catch(Exception e){ //obj()からパスされた例外をキャッチ //例外処理 } } static void obj() throws Exception{ 処理 throw new Exception(); } }では、サンプルプログラムで確認したいと思います。
サンプルプログラム(Sample98.java)
class Sample98{ public static void main(String args[]){
try{ obj(); }catch(Exception e){ System.out.println(e.getMessage()); } } static void obj() throws Exception{ throw new Exception("例外発生"); } }
プログラムをコピーする場合すべて選択をクリックしてください。
Sponsored link
コンパイル・実行してみます。
obj()メソッドは Exception例外がthrows宣言されているためパスされてきた例外を受け取るためtry catch文が定義されています。
obj()メソッド内では明示的に例外オブジェクトを呼び出し元へ渡すためにthrowを用いてオブジェクトの指定をしています。
これにより呼び出し元へ制御が移るとExceptionオブジェクトが渡されます。
呼び出し元ではこのオブジェクトをcatchしてその例外処理が行われます。
今回はコンストラクタの引数にエラーメッセージもいっしょに渡しています。
ではもうひとつプログラムを作成します。
サンプルプログラム(Sample98_1.java)
class Sample98_1{
public static void main(String args[]){
try{
obj();
}catch(ArrayIndexOutOfBoundsException a){
System.out.println(a.getMessage());
}catch(Exception e){
System.out.println(e.getMessage());
}
}
static void obj() throws Exception{
throw new ArrayIndexOutOfBoundsException
("ArrayIndexOutOfBoundsException例外発生");
}
}
プログラムをコピーする場合すべて選択をクリックしてください。
Sponsored link
コンパイル・実行してみます。
今回はcatch文を複数定義しました。
しかしobj()メソッドではArrayIndexOutOfBoundsExcepotion例外をスローしています。
従って呼び出し元へ制御が移ればArrayIndexOutOfBoundsException例外がcatchされます。