2

Exception() をスローするメソッドを作成しました。エラーが発生する - Unhandled exception type Exception

public void temp(){
  throw new Exception();
}

ただし、例外を NullPointerException などの他の例外に置き換えると、エラーは発生しません。なぜこうなった ?

4

2 に答える 2

7

これが、「チェックされた」例外と「チェックされていない」例外の違いです。NullPointerException を含む RuntimeException を拡張するものはすべて「未チェック」です。つまり、try/catch を介して、またはメソッドがそれらをスローすることを宣言して明示的に処理する必要はありません。

チェック例外は、RuntimeException を拡張しない例外であり、try/catch またはメソッドがそれをスローすることを宣言することによって処理する必要があります。どちらの方法でも処理していないため、コードはコンパイルに失敗します。

于 2013-03-17T04:25:52.700 に答える