java 为什么违例差错控制_Java违例差错控制

Java违例差错控制

Java 的基本原理就是“形式错误的代码不会运行”。

捕获错误最理想的是在编译期间,最好在试图运行程序以前。然而,并非所有错误都能在编译期间侦测到。有些问题必须在运行期间解决

“违例”( Exception)这个词表达的是一种“例外”情况,亦即正常情况之外的一种“异常”

基本违例

“违例条件”表示在出现什么问题的时候应中止方法或作用域的继续,为了将违例条件与普通问题区分开,

违例条件是非常重要的一个因素

将与错误有关的信息发送到一个更大的场景中,方法是创建一个特殊的对象

用它代表我们的信息,并将其“掷”( Throw)出我们当前的

场景之外。这就叫作“产生一个违例”或者“掷出一个违例”

if(t == null)

throw new NullPointerException();

这样便“掷”出了一个违例。

违例创建

和 Java 的其他任何对象一样,需要用 new 在内存堆里创建违例,并需调用一个构建器

在所有标准违例中,

存在着两个构建器:第一个是默认构建器,第二个则需使用一个字串自变量,使我们能在违例里置入相关信息:

if(t == null)

throw new NullPointerException("t = null");

它首先执行 new 表达式,创建一个不在程序常规执行范围之内的对象。

随后,对象实际会从方法中返回—— 尽管对象的类型通常并不是方法设计为返回的类型。可将其想象成另一种返回机制

违例的捕获

若某个方法产生一个违例,必须保证该违例能被捕获,并获得正确对待。

它的一个好处就是允许我们在一个地方把问题抛出,然后在另一个地方对待来自那个代码内部的错误。

为理解违例是如何捕获的,首先必须掌握“警戒区”的概念

1、 t r y 块

若位于一个方法内部,并“掷”出一个违例

try 块属于一种普通的作用域,用一个 try 关键字开头

2、 违例控制器

catch(捕获)关键字标记,

try {

// Code that might generate exceptions

} catch(Type1 id1) {

// Handle exceptions of Type1

} catch(Type2 id2) {

// Handle exceptions of Type2

} catch(Type3 id3) {

// Handle exceptions of Type3

}

捕获违例后,处理方式

1、“中断”,假定错误非常关键,没有办法返回违例发生的地方。无论谁只要“掷”出一个违例,就表明没有办法补救错误,而且也不希望再回来

2、“恢复”,它意味着违例控制器有责任来纠正当前的状况,然后取得出错的方法,假定下一次会成功执行。若使用恢复,意味着在违例得到控制以后仍然想继续执行

尽管“恢复”表面上十分不错,但在实际应用中却显得困难重重。其中决定性的原因可能是:

我们的控制模块必须随时留意是否产生了违例,以及是否包含了由产生位置专用的代码。这便使代码很

难编写和维护—— 大型系统尤其如此,因为违例可能在多个位置产生。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值