java - 抛出异常和捕获异常?

标签 java exception exception-handling throw

我想知道 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/

相关文章:

c# - 定制异常消息未显示在控制台中

java - 在 Java 中拯救被吞噬的异常

objective-c - Cocoa的try/catch/finally异常处理在什么情况下@finally是非冗余的?

java - java中的序列化,在事件中重新膨胀对象?

Java异常处理理解问题

python - 为什么 python 异常通常不打印违规值?

java - 在 catch block 中抛出异常需要另一个 try catch block

java - 如何使用 java 代码在 android 中锁定文件?

java - 根据客户端请求将数据流式传输到 Web 套接字

java - 无需注入(inject)即可获得 e4 服务