ExceptionUtil.java
public class ExceptionUtil {
// このメソッドは例外をスローする可能性があると宣言
public static void riskyMethod() throws Exception {
// 明示的に例外を発生させる
throw new Exception("危険な処理です");
}
}
Main.java(再掲)
public class Main {
public static void main(String[] args) {
try {
ExceptionUtil.riskyMethod();
} catch (Exception e) {
System.out.println("エラーを受け取りました: " + e.getMessage());
}
}
}
解説:throws 宣言と throw 文の違い
このステップでは、例外処理の責任を呼び出し元に委ねる設計を学びます。
throws
宣言とは?
メソッドに throws
を書くことで、「このメソッドは例外を投げる可能性があります」と呼び出し側に伝えます。
public void method() throws Exception {
// 例外を投げる可能性がある
}
throw
文とは?
throw
は実際に例外を発生させる文です。
throw new Exception("メッセージ");
呼び出し側の責任
throws
で宣言されたメソッドを使うときは、呼び出し元で try-catch
によって例外を処理する必要があります。
処理しない場合は、さらに上位へ例外を伝播させなければなりません(今回は main
で完結)。
出力例
エラーを受け取りました: 危険な処理です
まとめ:このステップで学ぶべきこと
throws
は「例外が発生しうるメソッドですよ」と呼び出し元に警告する仕組みthrow
は実際に例外を作って投げる操作- 呼び出し側で
try-catch
することで、安全な例外処理が可能になる
Just Keep Typing, Baby!では、この「例外修羅道」でつまづいた人向けの解説をしています。こちらもぜひ!
// tesh:
// 納得したフリは卒業しようぜ。ここで本物の理解を。