に関する例外があります。とthrow/throws句内での考慮方法です。例外がチェックされ、チェックされていない例外タイプ
私は以下の2つの例がありますが、java.lang.Exceptionがどのように処理されたかを正確には理解していません。チェックされているか、チェックされていない例外です。
次のメソッドが正常にコンパイル:
public double method1() throws Exception {
return 0.7;
}
- ここではのjava.lang.Exceptionが java.lang.RuntimeExceptionかでjava.lang.Errorを脅かしているように私には思えます。あなたがそれを処理しなくてもそれを投げることを宣言することができます。
- 例外の代わりにチェック済みの例外(サブクラスがの場合java.lang.Exception)を使用した場合、メソッド本体内でスロー宣言を行う必要がありますそれは例外をチェックしました)。右?以下はコンパイルされません
:
private void method2(int age) {
if (age > 30)
throw new Exception();
}
- を、ここでは私の混乱です...それはタイプjava.lang.RuntimeExceptionまたはjava.langでのサブクラスを投げていた場合。エラーがコンパイルされていました。
- なぜこの場合はコンパイルされませんか?私はそれがjava.lang.Exceptionのをチェック例外として脅かすからだと思います。しかしそうなら、なぜmethod1がコンパイルされるのですか?
それは型java.lang.RuntimeExceptionまたは のサブクラスを投げていたでjava.lang.Errorそれがコンパイルされていた希望の場合、 ルイサ
[Java:checkedと未チェックの例外の説明]([http://stackoverflow.com/questions/6115896/java-checked-vs-unchecked-exception-provisioning)の可能な複製] – Burkhard