Javaのtry-catchとは?例外が起きたときの処理の流れを理解する

本記事は、Schooの「Java入門 初級【2026年版】」第9回「例外処理」を学ぶ前後に、try-catch の処理の流れを整理したい方向けの記事です。
try-catch は、例外が起きそうな処理を試し、問題が起きたときだけ別の処理へ移すための書き方です。初学者がつまずきやすいのは、文法そのものよりも「どの行まで実行されて、どこから続くのか」という流れです。
この記事では、try の中で例外が起きたあと、catch に移り、その後の処理へ進むイメージを確認します。
Schoo コースページ:Java入門 初級【2026年版】
try-catchは何のために使うのか
try-catch は、例外が起きたときの対応をプログラムに書いておくために使います。
try:例外が起きるかもしれない処理を書くcatch:例外が起きたときの処理を書くtry-catchの後ろ:例外対応が終わったあとに続けたい処理を書く
重要なのは、catch は「毎回実行される処理」ではないことです。try の中で対応する例外が起きた場合だけ、catch の中が実行されます。
例外が起きない場合の流れ
まず、例外が起きない場合を見ます。10 / 2 は計算できるため、try の中を最後まで実行します。
try {
int result = 10 / 2;
System.out.println("結果:" + result);
} catch (ArithmeticException e) {
System.out.println("0で割ることはできません");
}
System.out.println("処理を続けます");
この場合、catch の中は実行されません。表示される流れは、結果を表示してから、処理を続けます に進みます。
例外が起きた場合の流れ
次に、例外が起きる場合を見ます。10 / 0 は計算できないため、ArithmeticException が発生します。
try {
int result = 10 / 0;
System.out.println("結果:" + result);
} catch (ArithmeticException e) {
System.out.println("0で割ることはできません");
}
System.out.println("処理を続けます");
このコードでは、int result = 10 / 0; の行で例外が起きます。そのため、同じ try の中にある System.out.println("結果:" + result); は実行されません。
代わりに、対応する catch へ移り、0で割ることはできません と表示します。その後、try-catch の外にある 処理を続けます に進みます。
catchに書く例外の型を合わせる
catch には、受け取りたい例外の型を書きます。0で割ったときに発生する例外は ArithmeticException なので、次のように書きます。
catch (ArithmeticException e) {
System.out.println("0で割ることはできません");
}
e は、発生した例外の情報を受け取る変数です。最初のうちは、catch (例外の型 変数名) という形で、例外を受け取っていると考えれば十分です。
tryの中に何でも詰め込みすぎない
try の中には、例外が起きるかもしれない処理と、その結果に直接関係する処理を入れます。関係のない処理まで入れすぎると、どの処理で例外が起きたのか追いにくくなります。
たとえば、計算で例外が起きるかもしれないなら、計算と結果表示を try に入れます。計算のあとに必ず続けたい処理は、try-catch の外に書くと流れを読みやすくなります。
確認問題
tryの中で例外が起きた場合、同じtryの残りの行は実行されますか。catchの中は、どのような場合に実行されますか。try-catchの後ろに書いた処理は、どのタイミングで実行されますか。
演習後の確認:こちらのページを使って、自分で考えた内容を見直せます。
あわせて読みたい関連記事
- Javaの例外処理とは?エラーでプログラムを止めないための考え方
- Javaのreturnとは?メソッドの処理を終えて値を返す考え方
- Javaのbreakとcontinueとは?繰り返し処理の流れを変える考え方
まとめ
try-catch は、例外が起きたときに処理の流れを切り替えるための書き方です。例外が起きない場合は try の中を最後まで進み、catch は実行されません。例外が起きた場合は、try の残りを飛ばして対応する catch に移ります。まずは、この流れを図としてイメージできるようにしておきましょう。