1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Javaの例外処理を丁寧に理解する

Last updated at Posted at 2025-06-01

1. はじめに

例外とは?

Javaでプログラムを実行中にエラーが発生すると、「例外(Exception)」として通知されます。

  • ファイルが見つからない
  • 0で割った
  • nullのオブジェクトにアクセスした

こうした 異常な状態を安全に処理するために使うのが「例外処理」です。

2. try-catch構文の基本

ブロック名 役割・用途
try 例外が発生する可能性がある処理を囲むブロック
catch 発生した例外を捕まえて処理(エラー対応)するブロック
finally 例外の有無に関わらず必ず実行される処理を書くブロック。主にリソースの解放などに使う
try {
    // 例外が発生するかもしれない処理
} catch (ExceptionType name) {
    // 例外が発生したときの処理
}

3. 例外の種類

Checked Exception

例外処理を必ず明示的に書く必要がある。ファイル操作やネットワーク処理などでよく発生。

Unchecked Exception

RuntimeException(実行時例外)を継承した例外群。
主にプログラムのバグ(例:NullPointerException)で発生し、処理は任意。

分類 説明
Checked IOException try-catch必須
Unchecked RuntimeException try-catchは任意

4. 複数のキャッチブロック

✅ 正しい順番

具体的な例外(子クラス)から書き、一般的な例外(親クラス)へと順に書く

理由

例外は上から順にチェックされるので、親クラスのcatchが先にあると、子クラスのcatchは決して実行されません。Javaコンパイラが「このcatchは意味がない」と判断してエラーにします。

try {
    // ...
} catch (FileNotFoundException e) {
    // ...
} catch (IOException e) {
    // これは後に書かないとコンパイルエラー
}

5. try-catch と throws の使い分け

方法 意味 向いている場面
try-catch その場で例外を捕まえて処理する 例外に応じた対応がその場で可能なとき
throws 例外処理を呼び出し元に任せる メソッド内で対処できない or 上位で処理したいとき

6. ユーザー定義例外の書き方

定義

public class MyException extends Exception {
    public MyException(String message) {
        super(message);
    }
}

使い方

throw new MyException("カスタム例外です");

7. try-with-resources構文(Java 7以降)

  • リソース(ファイル、ネットワーク接続など)を使ったあとに必ず閉じる処理を簡単に書くための構文

  • finallyブロックでclose()を書かなくても、自動的に閉じてくれる

書き方

try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
    String line = br.readLine();
    System.out.println(line);
} catch (IOException e) {
    e.printStackTrace();
}

従来の書き方

BufferedReader br = null;
try {
    br = new BufferedReader(new FileReader("file.txt"));
    // 処理
} catch (IOException e) {
    e.printStackTrace();
} finally {
    if (br != null) {
        try {
            br.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?