异常机制

来源:互联网 发布:国内主机推荐 知乎 编辑:程序博客网 时间:2024/04/30 18:03
异常机制
a、异常机制类结构图
Throwable
Error
AWTError
IOError
ThreadDeath
LinkageError
NoClassDefFoundError
Exception
IOException
SQLException
……
RuntimeException
NullPointerException
IndexOutOfBoundsException
ArrayIndexOutOfBoundsException
ClassCastExcetion
IllegalArgumentException
NumberFormatException
b、异常的捕获(积极处理方式)
b.1、使用try...catch...finally..语句块进行异常捕获
(PS:finally块可有可无(相对于编译来讲))
b.2、try块后可以跟1个或多个catch块
b.3、try块后如果不跟catch,那么必须跟finally块。
b.4、try块后,如果不跟finally块,则必须跟catch块。
b.5、finally块无论是否捕获到异常均会执行。
b.6、finally块即使在try块中进行return操作,也会得到执行,但执行逻辑
发生在return之前。
b.7、finally块,在之前执行System.exit()时,将不会得到执行。
b.8、finally块,在CPU中断,或者线程死亡时,将不能得到执行。
b.9、finally块,在其中发生了异常,那么该代码块也不会得到执行完毕。
c、Checked异常(编译时异常)与UnChecked异常(运行时异常)
c.1、编译时异常,需要在编译期就进行捕获,或者抛出的异常。
该异常指的是:Exception类下,除了RuntimeException之外的所有异常。
c.2、运行时异常,不需要强制在编译期进行捕获的异常。
该异常指的是:RuntimeException类下的所有异常。
d、异常的抛出
d.1、该行为属于异常处理的消极形式,即:消极处理方式。
d.2、throws:声明在方法之后,表示,该方法内可能会抛出异常,如果
该方法内没有能力捕获该异常,那么可以选择抛出该异常让其他方法处理。
d.3、throw:该关键字后必须抛出一个异常的实例化对象。
e、Error
e.1、Error可以捕获,但没有捕获的意义。
e.2、Eroor一般为系统级别的错误。
f、异常的一些常用方法
f.1、getCause():返回抛出异常的原因,如果没有,返回null
f.2、getMessage():返回异常发生时携带的消息,如果没有,返回null
f.3、printStackTrace():打印内存栈的错误轨迹,输出方式为System.err
0 0