异常
Exception:非正常情况,程序报错
整个异常的结构
异常的分类
检查异常:CheckedException,写代码的时候就会出现异常报错
运行时异常:RunTimeExcrotion,程序允许的时候报的错
空指针异常:NullPointerException
类型转换:ClassCastException
算数异常:ArithmeException
检查异常
IOExcrption
异常处理
处理异常
异常处理流程
异常处理顺序
finally的作用
手动的销毁资源
声明与抛出异常
在**方法**中处理异常的方法:
1.在方法体中去使用try...catch...finally...
2.在方法声明一个异常,在方法中抛出该异常,将异常处理交给调用方
有两个关键字:throw,throws
//给方法声明异常
修饰符 返回值 方法名(形参 参数,形参参数)throws异常的名字1.异常名字2{
//方法体
//抛出(throw)声明的异常
}
throw和throws的区别:
throws:用来声明一个方法可能产生的所有异常,不做任何处理而是将异常往上传,谁调用我我就抛给谁。
throw:throw:则是用来抛出一个具体的异常类型
自定义异常
当Java提供的异常类满足不了实际的业务情况的时,这个时候我们需要自定义异常
自定义异常就需要一个异常的父类:RunTime
异常链
一个异常引起了另一个异常,为了方便程序员找到错误的源头。
异常链的传递,需要抛出异常的上一个对象