异常 Exception Exception分为 checked异常(受检异常) 和 unchecked(非受检异常) checked异常需要在代码中显式处理的异常,否则会编译报错,如有能力则自行处理,如果无法处理则向调用方抛出异常 unchecked异常是运行时异常,它们都继承自RuntimeException,不需要显示的处理异常 unchecked分为三类: 1.可预测异常: 如 IndexOutOfBoundsException NullPointException等,需要做好边界检查、空值判断 2.需要捕捉的异常: 如Dubbo进行RPC调用时超时异常,此类需要客户端进行显示处理 3.可透出异常: 框架或者系统产生的且会自行处理的异常 finally 代码块,通常用于处理善后工作,如果finally代码块没有执行,可能原因有以下三个: 1. 没有进入try代码块 2. 进入try代码块,但是代码运行中出现了死循环或者死锁状态 3. 进入了try代码块,但是执行了System.exit()操作 注意: finally是在return表达式运行后执行的,此时将要return的结果已经暂时存起来,待finally代码块执行结束后再将 之前的暂存的结果返回。 finally代码块的职责是: 清理资源、释放连接、关闭管道流等操作。 finally使用return会使得返回值非常不可控,避免在返回值中使用return语句
异常相关概念
最新推荐文章于 2023-08-30 22:04:31 发布