异常
什么是异常?Java代码在运行时期发生的问题就是异常。
编译时期发生的异常叫编译失败。
在Java中,把异常信息封装成了一个类。当出现了问题时,就会创建异常类对象并抛出异常相关的信息(如异常出现的位置、原因等)。
异常的继承体系
Throwable类有两个子类
1.错误Error 相当于癌症一旦发生不能处理 只能修改代码
2.异常Exception 相当于感冒 发生后是可以初音的
异常Exception又有两个子类一个是非RuntimeException 编译器是异常相当于感冒发生后可以处理
一个是RuntimeException 相当于癌症发生后 只能修改代码
异常与错误的区别
异常:指程序在编译、运行期间发生了某种异常(XxxException),我们可以对异常进行具体的处理。若不处理异常,程序将会结束运行。
(一半可以处理,一半不能处理)
错误:指程序在运行期间发生了某种错误(XxxError),Error错误通常没有具体的处理方式,程序将会结束运行。
Error错误的发生往往都是系统级别的问题,都是jvm所在系统发生的,并反馈给jvm的。我们无法针对处理,只能修正代码。
(不能处理只能修改代码)
异常的产生过程解析
抛出异常throw和声明异常throws
抛出异常:
throw new 异常类名(参数);
声明异常:
修饰符 返回值类型 方法名(参数) throws 异常类名1,异常类名2… { }
捕获异常try…catch…finally
try…catch…finally异常处理的组合方式
运行时期异常
l RuntimeException和他的所有子类异常,都属于运行时期异常。NullPointerException,ArrayIndexOutOfBoundsException等都属于运行时期异常.
l 运行时期异常的特点:
n 方法中抛出运行时期异常,方法定义中无需throws声明,调用者也无需处理此异常
n 运行时期异常一旦发生,需要程序人员修改源代码.
实例:
异常中常用方法
一般都用第二种