Warum kompiliert der folgende Code ordnungsgemäß, aber die aufgerufene Methode muss Exception
nicht werfen? Ist Exception
eine geprüfte Ausnahme und keine unkontrollierte Ausnahme? Bitte klären Sie.Ausnahme muss nicht ausgelöst werden, um abgefangen zu werden, aber IOException tut
class App {
public static void main(String[] args) {
try {
amethod();
System.out.println("try ");
} catch (Exception e) {
System.out.print("catch ");
} finally {
System.out.print("finally ");
}
System.out.print("out ");
}
public static void amethod() { }
}
Wenn ich einen Versuch fängt mit IOexception
(a geprüfte Ausnahme) verwendet werden soll, wobei das Verfahren Bedürfnisse genannt IOException
zu werfen. Ich verstehe das.
import java.io.IOException;
class App {
public static void main(String[] args) {
try {
amethod();
System.out.println("try ");
} catch (IOException e) {
System.out.print("catch ");
} finally {
System.out.print("finally ");
}
System.out.print("out ");
}
public static void amethod() throws IOException { }
}
Ich denke, dein Verständnis ist rückwärts. Die "throws" -Deklaration soll die geprüften Ausnahmen auflisten, die vom Angerufenen ausgelöst werden, und nicht diejenigen, die vom Aufrufer abgefangen werden. –