Exception分类以及特征总结:
首先异常的分类可以定义为error和Exception。error是系统内部的错位,程序员对于这样的错误是无能为力的,一旦发生,最好能够使得程序可以优雅的结束终止;
而Exception一般是程序造成的错误,比如说文件没有读入,找不到文件位置等等的错误,这样的情况需要我们能够对他们进行捕获,处理等等。
如同上图描述的异常处理,Exception也分为了两类,这需要对于这两类有着不同的处理:
Checked Exception: 不能恢复的Exception,需要由使用者来处理的一类异常,例如IOException,这样的异常不捕获,使得编译报错。
Unchecked Exception: 指的是在运行时才会导致程序奔溃的异常,编译时候并不会报错。例如,Runtime Exception。
error的分类:
User input errors 用户输入错误
Device errors 设备错误
Physical limitations 物理限制
同时,如果在程序的每一处都去使用处理Checked Exception,那么这将使得程序冗长,我们一般需要把Checked Exception改编为Unchecked Exception,来提高可读性和效率:
Checked Exception在编写代码时就能发现
Checked Exception必须要被捕获或者抛出
Unchecked Exception在运行时才能发现
不同类型处理方式:
既然Error我们无能为力,那就转向关注我们能处理的Exception。
异常定义:异常:程序执行中的非正常事件,程序无法再按预想的流程执行。
处理方式分析:
将错误信息传递给上层调用者,并报告“案发现场”的信息。
return之外的第二种退出途径,若找不到异常处理程序,整个系统完全退出
面对Unchecked exception,我们可以进行不处理的态度,编译没问题,但执行时出现
就导致程序失败,代表程序中的潜在bug。