为什么编译器允许抛射,而方法永远不会抛出异常
我想知道为什么java编译器允许在方法声明中抛出,而方法永远不会抛出异常。因为“throws”是处理异常的一种方式(告诉调用方处理它)。
由于有两种处理异常的方法(throws和try/catch)。在 try/catch 中,它不允许捕获未在 try 块中引发的异常,但它允许在可能不会引发异常的方法中引发。
private static void methodA() {
try {
// Do something
// No IO operation here
} catch (IOException ex) { //This line does not compile because
//exception is never thrown from try
// Handle
}
}
private static void methodB() throws IOException { //Why does this //compile when excetion is never thrown in function body
//Do Something
//No IO operation
}