我想知道 Java 如何处理以下场景
public static void main(String[] args) throws IndexOutOfBoundsException, CoordinateException, MissionException, SQLException, ParserConfigurationException {
try {
doSomething();
} catch (Exception e) {
e.printStackTrace();
}
}
在上面的代码中,我声明了主函数抛出许多不同的异常,但在函数内部,我捕获了通用异常。我想知道 java 如何在内部使用它?也就是说,假设 doSomething()
抛出一个 IndexOutOfBounds 异常,e.printStackTrace() 会在最后一个 catch (Exception e) {...}
block 中被调用吗?
我知道如果没有在函数的 throws 区域声明的异常被抛出,try/catch 会处理它,但是声明中提到的异常呢?
最佳答案
在您的情况下,如果在 doSomething()
中抛出或生成任何异常,它将在 try-catch block 中被捕获,因为您正在捕获 Exception e
。
Exception
是所有异常的父级。所有异常都继承自此类。
关于java - 抛出异常和捕获异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17331132/