1.先说一下概念 什么是Java异常
在程序的运行过程中,发生了不正常的现象,阻止了程序的运行,我们称之为发生异常。
2.再来异常的家谱
我们可以看到所有异常都继承自类Throwable
Throwable有分为两类,一类是Error(错误),一种是异常(Exception)
2.1Error类型
从名字(错误)我们也能看出,当出现该异常的时候程序出现严重的问题。实际上,当JVM系统内部错误(如内存溢出)才会出现这种错误。靠程序本身无法解决(你想想JVM都出问题了,程序怎么解决)
2.2Exception类型
该异常又有两种子类:一种检查异常(编译异常),一种是运行时异常
2.2.1 检查异常(编译异常)
顾名思义:编译期就要处理(是抓取或抛出)的异常,你不处理编译不让你通过
例如:ClassNotFoundException,
2.2.2 运行时异常
这种异常编译期不强制要求你处理,可以手动处理可以不处理。不处理的话由系统抛出
常见:空指针异常,除零异常,数组越界异常
注意:程序中语法错误,逻辑错误 都不属于上面的Error,Exception