Java主要处理哪些类型的异常_Java技术高效处理异常有哪些呢?

ava应用程序中的异常处理可以告诉用户构建应用程序的架构强度。架构是指在应用程序的各个层面上所做出的并始终遵守的决策。其中最重要的决策之一便是应用程序中类、子系统或层之间进行互相通信的方式。方法通过Java异常可以为操作传递另一种结果,因此应用程序架构特别值得我们去关注。

判断Java架构师技能的高低和开发团队是否训练有素,其中比较好的方法是查看应用程序中的异常处理代码。首先需要观察的是有多少代码专门用于捕捉异常、记录异常、确定发生的事件和异常转化。简洁、紧凑和有条理的异常处理表明团队有使用Java异常的一致方法。

当异常处理代码的数量将要超过其他方面的代码时,可以断定团队成员之间的沟通已经打破(或者这种沟通从一开始就不存在),每个人都用自己的方法来处理异常。

临时异常处理的结果非常具有预见性。如果问团队成员为什么在代码的某个特定点丢弃、捕捉、或忽略某个异常,回答通常是:“除此之外,我不知道怎么做。

”如果问他们在编写代码的异常实际发生时会产生什么情况,他们通常会皱眉,回答类似于:“我不知道。我们从来没有测试过。”

要判断Java组件是否有效地利用了Java异常,可以查看其客户端的代码。如果客户端代码中包含大量计算操作失败时间、原因和处理方法的逻辑,原因几乎都是由于组件的错误报告设计。

有缺陷的报告会在客户端产生大量的“记录和遗留”(log and forget)代码,而没有任何用途。最糟糕的是扭曲的逻辑路径、互相嵌套的try/catch/finally程序块,以及其他导致脆弱和无法管理的应用程序的混乱。

事后处理异常(或者根本不处理)是造成软件项目混乱和延迟的主要原因。

异常处理关系到软件设计的各个方面。为异常建立架构约定应该是项目中首先要做出的决定之一。合理使用Java异常模型将对保持应用程序的简洁性、可维护性和正确性大有帮助。

挑战异常准则

如何正确使用Java异常模型已经成为大量讨论的主题。Java并不是支持异常语义的第一种语言;但是,通过Java编译器可强制使用规则来控制如何声明和处理特定的异常。

许多人认为编译时异常检查对精确软件设计有帮助,它与其他语言特征能够很好地协调起来。图1表明了Java异常的层次结构。

通常,Java编译器会根据java。lang。Throwable强制方法抛出异常,包括其声明中“throw”子句的异常。同样,编译器会验证方法的客户端是捕获声明异常类型还是指定自己抛出异常类型。

这些简单的规则对于全世界的Java开发人员产生了深远的影响。

编译器针对 Throwable继承树的两个分支放宽了异常检查行为。java。lang。Error和java。lang。RuntimeException的子类免于编译时检查。在两者中,软件设计人员通常对运行时异常更感兴趣。

全部

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页