【Java】例外の発生とその処理

  • 2020.05.23
  • 2021.01.24
  • Java
NO IMAGE

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と似ていますね。(ほぼ同じ?)
他にもいろいろな例外がありますのでそれは調べてみてください。
例外によってキャッチの( )の中の記述が変わってきます。

少しでも参考になれば嬉しいです。
では、また。

Javaカテゴリの最新記事