なんとなくしかわかっていないtry-catch文をきちんと使えるようになりたいと思います。
try-catch文とは
例外が発生しうる範囲をtryブロックで囲い、1つ以上の例外処理をcatchブロックに記述することができます。try内で例外が発生した場合、処理は例外発生箇所からcatchへ移動します。
参考:try…catch 文 – JavaScript | MDN
構文
try{
// 例外が発生しそうな処理
} catch(例外クラス型 変数){
// 例外時の処理
}
変数は任意の値が入ります。「e」が一般的に使われています。exceptionのeなのかな。
その他について以下でサンプルコードを交えながら説明していきます。
例外が発生しそうな処理に慣れよう
例外が発生しそうな処理といえば配列ではないでしょうか。よく見る例外を発生させて例外が発生しそうな処理について慣れてみましょう。
ArrayIndexOutOfBoundsException
ArrayIndexOutOfBoundsException(配列のインデックス外で例外)を発生させてtry-catchしてみましょう。
int num[] = {1, 2, 3};
try{
System.out.println(num[3]); //例外が発生
System.out.println(“この処理は実行されません”); //例外より下の処理はスキップ
}catch(ArrayIndexOutOfBoundsException e){
System.out.println(“配列のインデックスを確認してください”);
}
try句内で配列の要素外のインデックスを呼び出したため、ArrayIndexOutOfBoundsExceptionが発生しています。例外をcatch句で捕らえSystem.out.println(“配列のインデックスを確認してください”);の処理が実行されます。
例外が発生したら、ただちにcatch句へ処理が移るのでtry句内の例外から下にある処理は実行されません。
ArrayIndexOutOfBoundsExceptionについては以下で簡単に解説しています。
NullPointerException
NullPointerException(null値を参照型変数で参照)を発生させて、try-catchしてみましょう。
String str = null;
try{
int i = str.length();
System.out.println(i);
}catch(NullPointerException e){
System.out.println(“文字の長さを取得できません”);
}
try句内でnull値を参照型変数で参照したためNullPointerExceptionが発生し、catch句で捕らえcatch句内の処理が実行されます。
NullPointerExceptionについては以下で簡単に解説しています。
おわり
慣れようとは書いたものの初心者は慣れるまでは例外が発生したらその箇所をtry-catchで囲いながら慣れていくのが良さそうですね。あとはとりあえず、配列は囲っておこうかな。
よくエラーメッセージを掲示する際に使用するのに使われているのを見かけますよね。
try-catchに慣れてきたら、finallyも加えてみましょう。