HIT软件构造--错误和异常部分要点

目录

1.错误和异常

在这里插入图片描述
内部错误:程序员通常无能为力,一旦发生,想办法让程序优雅的结束 。

异常:你自己程序导致的问题,可以捕获、可以处理,即程序中非正常事件,导致程序不按照预期执行。

针对错误和异常发生的情况,往往是用户输入的错误,设备错误或者一些物理限制造成的。
而面对错误我们是无能为力的,我们只好对异常Exception进行处理。

2.异常的分类

根据异常的种类,往往分为两类:运行时异常和其他异常。
运行时异常:由程序员在代码里处理不当造成的异常。
该异常是由于程序中源代码中引入的故障造成。
例如:类型转换,数组越界,空指针等。
想要避免该类一场,需要程序员对代码进行提前验证。
在这里插入图片描述
其他异常:外部原因引起。
该类异常属于程序员无法完全控制的外在因素导致。
例如:读取文件末尾,打开不存在的文件等。

3.检查型异常和非检查型异常

何为检查型异常,何为非检查型异常,Java对于这两种定义的很简单。

将派生于Error或者RuntimeException的异常称为unchecked异常,所有其他的异常称为checked异常。
在这里插入图片描述
在这里插入图片描述
对于非检查型异常,在编译时不需要采用try…catch方法处理。换言之,可以不进行处理,编译没有任何问题,但这就会导致程序中含有潜在的bug。

而对于检查型异常,必须进行捕获并且指定错误处理器进行处理,否则的话编译是无法通过的。

当要决定是采用checked exception还是unchecked exception的时候,问一个问题:“如果这种异常一旦抛出,client会做 怎样的补救?”
– 如果客户端可以通过其他的方法恢复异常,那么采用checked exception;
– 如果客户端对出现的这种异常无能为力,那么采用unchecked exception;
– 异常出现的时候,要做一些试图恢复它的动作而不要仅仅的打印它的信息。
同时,程序员在编写程序时,尽量使用unchecked exception来处理编程错误:因为unchecked exception不用使客户端代码显式的处理它们,它们自己会在出现的地 方挂起程序并打印出异常信息。

总结一点就是:Checked exception应该让客户端从中得到丰富的信息。 – 要想让代码更加易读,倾向于用unchecked exception来处理程序中的错误

4.异常处理

在这里插入图片描述
如上图这个程序,发生的就是典型的异常,数组越界,这里定义的整数数组边界为10,而赋值是超过数组边界,程序会抛出异常。
为了让程序不抛出异常,而是对用户进行有用的提示,可以采用

try{
/*
  发生异常的程序
*/
} catch (Exception ex) {
/*
  捕获到异常后进行信息处理
*/
}

方式来进行异常信息处理。
需要注意以下几点:
1.当try块中抛出在catch子句中指定的异常时,将忽略出现异常位置之后的代码 ,由catch子句进行异常处理。
2.无异常抛出时,catch子句不执行 。
3.如果抛出的异常,在catch语句中没有匹配的异常处理,则被访问的程 序退出(由client处理)。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值