私はこのエラーの考えを理解しています。しかし、私はこれがコールスタックの仕組みを理解していないと思います。Java例外:例外myExceptionは、対応するtryステートメントの本体でスローされません
ファイルMain.java:
public static void main(String[] args) {
try {
Function1();
} catch (myException e) {
System.out.println(e.getMessage());
}
}
public static void Function1() {
Function2();
}
機能2は、別のファイルに存在:
File2.java
public void Function2() throws myException {
....
}
だから、いくつかのコール(コールスタックダウン)を介して、私は機能2を持っています「throws myException」という要件を指定します。どのようにメイン関数(エラーがどこに向けられている)は、私が行の下でmyExceptionをスローすることを認識しませんか?
私の「例外知識」の「穴」がどこにあるのかについての指針は、非常に高く評価されます。
aitee、
if myExceptionランタイム例外? Function2がmyExceptionをスローする必要がある場合、Function1もそれをスローする必要があります。 – hvgotcodes
MainとFile2のクラスの関係は何ですか? (どちらから継承していますか?) –
これはあなたの質問には直接関係しませんが、命名規則に従うことを強くお勧めします: 'Function1'や' Function2'のようなメソッドは小文字で始まり、 'myException'は大文字で始まります。規約により、あなたと他のプログラマーはお互いのコードをよく理解することができます。 –