javaにおけるthrowsの使い方
Javaでは、throwsキーワードはメソッドがスローする可能性のある例外を宣言するために使われます。メソッドの署名の最後に、メソッド名の後ろの括弧内に記述します。メソッドを呼び出す側は、例外を送出する可能性があるメソッドを呼び出す場合、その例外を処理する必要があります。そうでない場合、コンパイラによってエラーになります。
throws キーワードは、以下のような場合に使用されます。
- 単一例外を宣言:例外クラス名の後に throws キーワードを使用すると、スローされる可能性のある単一の例外を宣言できます。例:
- InputStreamReaderをインスタンス化し、ファイルを読み込む。
- Throws句の後に複数の例外クラス名をカンマで区切って指定することで、複数の例外を宣言できます。例えば:
- public void connectToDatabase() throws SQLException, ClassNotFoundException {
// 処理本体
} - 祖先例外を使う:祖先例外によって具体的な例外クラスの代わりに、その祖先例外を投げる可能性があることを宣言できます。これにより、方法の実装はこの祖先例外のあらゆる子例外を投げることが許可されるという、より多くの柔軟性があります。たとえば:
- public void readData() throws IOException {
// 実装メソッド
} - 複数の例外と親例外を宣言する:throws キーワードは同時に複数の例外と親例外を宣言できます。例:
- public void processFile() throws IOException, FileNotFoundException {
// 実装内容
}
throws のキーワードで宣言された例外は、メソッド内で処理されるか、メソッド呼び出し元でキャッチする必要があります。メソッド内で例外が処理されず、メソッド呼び出し元でもキャッチされなければ、例外は呼び出し元のメソッドに伝達され、最終的に JVM に伝達されてプログラムが終了する可能性があります。