爲什麼下面的代碼編譯正常,但被調用的方法不需要拋出Exception
?是不是Exception
檢查異常,而不是未經檢查的異常?請澄清。異常不需要被拋出,但IOException異常
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() { }
}
如果我想使用一個IOexception
嘗試捕捉(checked exception)時,該方法被調用需要扔IOException
。我明白了。
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 { }
}
我認爲你的理解是倒退的。 'throws'聲明的目的是列出被調用者拋出的選中的異常,而不是被調用者捕獲的異常。 –