Javaのthrowsとは?例外を呼び出し元に伝える宣言

本記事は、Schooの「Java入門 初級【2026年版】」第9回「例外処理」を学ぶ前後に、throws の考え方を整理したい方向けの記事です。
throws は、「このメソッドの中で起きた例外が、呼び出し元へ出る可能性があります」と宣言するための書き方です。
throw が問題を例外として知らせる命令だとすると、throws は「その例外をこのメソッドの外へ出す可能性がある」と伝える宣言です。
Schoo コースページ:Java入門 初級【2026年版】
throwsは何のために使うのか
メソッドの中で例外が起きる可能性があるとき、その場で try-catch して処理する方法があります。一方で、そのメソッドを呼び出した側に対応を任せたい場合もあります。
そのときに使うのが throws です。throws を書くことで、「このメソッドを呼ぶ側で、例外への対応を考えてください」と示せます。
throws は、例外をその場で処理せず、呼び出し元に対応を任せることを示す宣言です。throwsの基本形
throws は、メソッド名の後ろに書きます。
static void readFile() throws FileNotFoundException {
FileInputStream in = new FileInputStream("data.txt");
}
この例では、readFile メソッドの中で FileNotFoundException が外へ出る可能性があることを宣言しています。
呼び出し元でtry-catchする
throws が付いたメソッドを呼ぶ側では、例外に対応する必要があります。たとえば、次のように try-catch で受け取ります。
try {
readFile();
System.out.println("ファイルを開きました");
} catch (FileNotFoundException e) {
System.out.println("ファイルが見つかりません");
}
readFile() の中でファイルが見つからなかった場合、例外は呼び出し元へ渡ります。そして、呼び出し元の catch で対応します。
throwとthrowsの違い
throw と throws は名前が似ていますが、書く場所も役割も違います。
throw:処理の中で、実際に例外として問題を知らせるthrows:メソッド宣言に書き、例外が外へ出る可能性を示す
throw は処理の中に書く命令、throws はメソッド名の後ろに書く宣言です。throwsを書くと例外が消えるわけではない
throws を書くと、例外をそのメソッドの中で処理しなくてもよくなる場合があります。ただし、例外そのものがなくなるわけではありません。
例外は呼び出し元へ渡ります。そのため、どこかのタイミングで try-catch するか、さらに上のメソッドへ throws で渡す必要があります。
チェック例外ではthrowsが必要になることがある
ファイルを開く処理などでは、FileNotFoundException のようなチェック例外が出てきます。チェック例外は、Javaが「例外への対応を書いてください」と求める種類の例外です。
その場で対応するなら try-catch を書きます。呼び出し元に対応を任せるなら、メソッドに throws を書きます。
確認問題
throwsは、メソッドのどこに書きますか。throwsを書くと、例外はどこへ渡りますか。throwとthrowsの違いを簡単に説明してください。
演習後の確認:こちらのページを使って、自分で考えた内容を見直せます。
あわせて読みたい関連記事
まとめ
throws は、メソッドの中で起きた例外が呼び出し元へ出る可能性を示す宣言です。throw は実際に例外として問題を知らせる命令、throws はその例外が外へ出る可能性を伝える宣言、と分けて考えましょう。