祖宗类:
Java.lang.Throwable
父类:
Error(系统级别错误):严重错误,但跟程序无关
Exception(异常):
子类:
RuntimeException(运行时异常):
代码有bug,比如数组越界,空指针异常
在运行时抛出异常
编译时异常:
写的时候就会报错
处理方法:
1.抛出异常(throws)
抛给上级程序
2.捕获异常
try catch
自定义异常:
自定义运行时异常
定义异常类继承RuntimeException
重写构造器
用 throw(抛出当前异常对象) 抛给上层程序
自定义编译时异常
继承Exception
用throws(用在方法上,抛出方法内部异常)抛出
怎么运用
问题不大:运行时异常
问题严重:编译时异常
异常处理
捕获异常并响应信息
简单说就是抛出异常
外层直接用Exception接收
捕获异常尝试重新修复
应用案例:输入不合法,可以抛出异常,主程序接收以后做相应处理
注意:程序只会在异常没有被处理的情况终止运行,捕获后程序还会正常运行