3

java では、常に例外をスローするメソッドが戻り値の型をその例外として宣言できるのはなぜですか? 次の両方の方法が有効です:-

public RuntimeException alwaysFails() {
    throw new RuntimeException("failed");
}

public void alwaysFailsButVoid() {
    throw new RuntimeException("failed");
}

これを許可する利点は何ですか?

4

3 に答える 3

0

私は問題を見ていません。戻り値の型と考えられる例外との間のコンパイル時のクロス チェックはありません。関係はありません。コンパイラは、どのチェック例外が可能であるか、および例外に関してどの例外が宣言されているかをチェックするだけです (明らかに、コンパイラはこれ以外にも多くのことを行います)。

于 2013-11-07T19:07:33.713 に答える