Exception() をスローするメソッドを作成しました。エラーが発生する - Unhandled exception type Exception
public void temp(){
throw new Exception();
}
ただし、例外を NullPointerException などの他の例外に置き換えると、エラーは発生しません。なぜこうなった ?
これが、「チェックされた」例外と「チェックされていない」例外の違いです。NullPointerException を含む RuntimeException を拡張するものはすべて「未チェック」です。つまり、try/catch を介して、またはメソッドがそれらをスローすることを宣言して明示的に処理する必要はありません。
チェック例外は、RuntimeException を拡張しない例外であり、try/catch またはメソッドがそれをスローすることを宣言することによって処理する必要があります。どちらの方法でも処理していないため、コードはコンパイルに失敗します。