Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
java では、常に例外をスローするメソッドが戻り値の型をその例外として宣言できるのはなぜですか? 次の両方の方法が有効です:-
public RuntimeException alwaysFails() { throw new RuntimeException("failed"); } public void alwaysFailsButVoid() { throw new RuntimeException("failed"); }
これを許可する利点は何ですか?
私は問題を見ていません。戻り値の型と考えられる例外との間のコンパイル時のクロス チェックはありません。関係はありません。コンパイラは、どのチェック例外が可能であるか、および例外に関してどの例外が宣言されているかをチェックするだけです (明らかに、コンパイラはこれ以外にも多くのことを行います)。