网站建设 .影响力科技,集群网站建设,php网站后台,云服务器价格对照表本周介绍了异常以及异常的处理。Java的异常机制将处理异常的代码整合到一个代码块中#xff0c;而不是通过if-else进行处理#xff0c;提高了代码整体的简洁性。同时#xff0c;异常机制可以更加详细地说明错误类型、引起错误的位置、错误信息#xff0c;对程序健壮性十分有…本周介绍了异常以及异常的处理。Java的异常机制将处理异常的代码整合到一个代码块中而不是通过if-else进行处理提高了代码整体的简洁性。同时异常机制可以更加详细地说明错误类型、引起错误的位置、错误信息对程序健壮性十分有帮助。
异常
1.Java“异常”的分类 分为Error和Exception又分为RuntimeException和其它Exception其中虚线部分unchecked exception不需显式catch。 2.运行时异常由程序员在代码中处理不当造成其它异常由外部原因造成。 3.运行时异常不应该catch而是通过修改代码消除。其它异常需要catch如果不捕获则编译无法通过类似于静态类型检查。 4.异常是为了增强程序健壮性断言为了增强程序正确性。
处理异常针对checked exception
1.当要决定采用checked exception还是unchecked exception时看异常由谁引起的。如果客户端代码不能做任何补救措施则采用uncheck exception如果客户端可以根据异常信息补救则采用checked exception。 2.客户端应该从checked exception中获取有价值的信息利用异常返回的信息明确操作失败的原因。 3.checked exception是可预料但无法预防的。如果做不到这一点则使用unchecked exception。 4.两种异常的对比
5.方法应该throws的异常种类该方法调用的其它方法抛出了一个checked exception从别处传来的异常当前方法检测到错误并使用throw抛出一个checked exception本身造成的异常 6.捕获异常时按照从具体到宽泛的顺序编写catch块 7.可以在catch块中继续抛出异常为了细化异常种类但是需要保留根异常
LSP原则下的异常
核心是子类型可以替代父类型即声明父类型赋值子类型 1.如果子类型重写了父类型的方法那么子类型方法抛出的异常不能比父类型抛出异常的类型更宽泛。 2.子类型方法可以抛出更具体的异常也可以不抛出异常。 3.如果父类型的方法未抛出异常子类型方法也不能抛出异常。可以理解成未抛出异常是最具体的异常。