首页 文章

双重检查异常和try-catch逻辑

提问于
浏览
0

所以刚开始这个单元,并在我的书中回答了几个问题 . 我的答案是否能够正确理解异常和try-catch块?在开始使用try-catch块/异常之前,想要验证这一点:)

  • 哪些类(及其子类)是未经检查的异常的示例?

答案:IOExceptions,ClassNotFoundException,RuntimeException(其子类:ArithmeticException,NullPointerException,IndexOutOfBoundsException,IllegalArgumentException

  • 程序员可以通过两种不同的方式处理已检查的异常以避免编译

答案:使用try-catch块或事先在方法头中声明异常 .

  • 描述在当前方法中未捕获异常时发生的步骤

答案:如果当前方法未捕获异常,Java将退出此方法,将异常传递给调用该方法的方法,并继续执行相同的过程以查找处理程序 . 如果在被调用的方法链中找不到处理程序,则程序终止并在控制台上输出错误消息 . (找到'处理程序'的过程称为捕获和异常 .

  • '链式异常'与已被重新抛出的异常有何不同?

答案:当处理程序无法处理异常或只是想让其调用者收到异常通知时,会发生重新抛出异常 . 链式异常是指抛出异常以及另一个异常 . 重新抛出异常的语法:throw ex(ex = object reference)链式异常的语法:throw new Exception(“message ...”,ex);

2 回答

  • 0

    IOException和ClassNotFoundException是CHECKED异常 . 仅取消选中RuntimeException及其派生类 .

  • 1
    • IOException和ClassNotFoungException是"checked"例外 . 查看文档以检索整个列表 . (选中的异常包括“Exception " class and its sub-classes except for " RuntimeException " and its sub-classes which forms the " Uncheck Exception”组.Quick List

    • Try-catch块或try-with-resources并将异常传播给其调用者 . try-with-resources

    • 该进程称为传播,如果未找到处理程序,则运行的线程将终止(打印到控制台的消息称为“堆栈跟踪”) . 只有当异常从唯一一个活动的剩余非deamon线程传播(没有找到任何处理程序)时,程序本身才会终止Thread types | Thread Concept .

相关问题