目次
try〜catch
例外とは、
□コンパイル時にエラーがなくても、プログラム実行時に発生したトラブル
□ランタイムエラーともいう
例外の発生例
□数字を0で割った場合
□ファイルへの入出力
■存在していると思ったファイルがない、
■ハードディスク容量一杯で書き込めない。など
□ネットワークへの接続
■端末が通信時ネットワークに接続されていない
■接続先の電源が入っていない。など
□データーベース接続時。など、
□その他。。。
例外発生コード
public class Sample01 {
public static void main(String[] args){
int x = 10;
int y = 0;
//例外
//10を0で割っているため、例外が投げられます
int z = x / y;
//↓例外が投げられて以降の処理は実行されません
System.out.println("zの値は" + z + "です");
System.out.println("プログラムを終了します。");
}
}
エラーメッセージはこんな感じ。
これだと、
int z = x / y;を実行した時点で例外が発生して、例外の処理が行われそのまま放置されます。
なので、その下からは実行されません。
ということでこの例外を放置させないようにキャッチしましょう。
例外をキャッチする
例外を放置させずキャッチするにはtry〜catch文を使います。
先ほどの例外発生コードをキャッチできるよう修正してみましょう。
public class Sample02 {
public static void main(String[] args){
int x = 10;
int y = 0;
//tryブロック{ }の中に実行したい処理を書く。
try {
//実行したい処理。例外が出る可能性がある処理を書く。
int z = x / y;
System.out.println("zの値は" + z + "です");
} catch (ArithmeticException e) {
//例外が発生したときの処理
System.out.println("例外をキャッチしました。");
System.out.println(e);
}
//↓例外が投げられても処理が実行される。
System.out.println("プログラムを終了します。");
}
}
実行結果はこんな感じになります。
最後の”プログラムを終了します”もうまく実行されました。
まとめ
□例外→実行時のトラブル
□try{ }→{ }の中に例外が発生する可能性のある処理を書く
□catch{ }→{ }の中に例外が発生したときの処理を書く
文法はif〜else ifと似ていますね。(ほぼ同じ?)
他にもいろいろな例外がありますのでそれは調べてみてください。
例外によってキャッチの( )の中の記述が変わってきます。
少しでも参考になれば嬉しいです。
では、また。
コメント