所以刚开始这个单元,并在我的书中回答了几个问题。我的答案是否能够正确理解异常和try-catch块?在开始使用try-catch块/例外之前,我想要验证这一点:)
哪些类(及其子类)是未经检查的异常的示例?
答案:IOExceptions,ClassNotFoundException,RuntimeException(其子类:ArithmeticException,NullPointerException,IndexOutOfBoundsException,IllegalArgumentException
程序员可以通过两种不同的方式处理已检查的异常以避免编译
答案:使用try-catch块或预先在方法标题中声明异常。
描述在当前方法中未捕获异常时发生的步骤
答案:如果当前方法未捕获到异常,则Java退出此方法,将异常传递给调用该方法的方法,并继续执行相同的过程以查找处理程序。如果在被调用的方法链中找不到处理程序,则程序终止并在控制台上输出错误消息。 (找到'处理程序'的过程称为捕获和异常。
“链式异常”与已重新引发的异常有何不同?
答案:当处理程序无法处理异常或只是想让其调用者收到异常通知时,会发生重新抛出异常。链式异常是指抛出异常以及另一个异常。重新抛出异常的语法:throw ex(ex = object reference)链式异常的语法:throw new Exception(“message ...”,ex);
答案 0 :(得分:1)
IOException和ClassNotFoundException是CHECKED异常。仅取消选中RuntimeException及其派生类。
答案 1 :(得分:0)
IOException和ClassNotFoungException是“已检查”的异常。查看文档以检索整个列表。 (Checked Exceptions包括“ Exception ”类及其子类,除了“RuntimeException”及其子类,它们形成“ Uncheck Exception ”组。{{3} }
try-catch块或try-with-resources并将异常传播给其调用者。 Quick List
该过程称为传播,如果未找到处理程序,则运行的线程将终止(打印到控制台的消息称为“堆栈跟踪”)。只有当异常从唯一一个活动的剩余非deamon线程传播(没有找到任何处理程序)时,程序本身才会终止try-with-resources | Thread types