目录
1、异常概述
异常:异常就是程序出现的问题
异常分类:
Error:代表程序级别错误(属于严重问题),系统一旦出现问题,sun国内公司会把这些错误封装成Error对象。Error是给Sun公司自己做的,不是给我们程序员用的。
Exception:叫做异常,代表程序可能出现的问题。
运行时异常:RuntimeException及其子类,编译阶段不会出现异常提醒。运行时出现的异常(如数组索引越界异常)
编译时异常:编译阶段就会出现异常提醒(如日期解析异常)
2、编译时异常与运行时异常
3、异常的作用
-
异常是用来查询bug的关键参考信息
-
异常可以作为方法内部的一种特殊返回值,以便通知调用者底层的执行情况
4、异常的处理方式
4.1 JVM默认的处理方式
-
把异常的名称,异常原因以及异常出现的位置等信息输出在控制台
-
程序停止执行,下面的代码就不会再执行了
4.2 捕获异常
格式:
try {
可能出现异常的代码;
} catch(异常类名 变量名) {
异常的处理代码;
}
关于异常四个问题:
①如果try中没有遇到问题,怎么执行?
会把try里面所有代码执行完毕,不会执行catch
②try中可能遇到多个问题,怎么执行?
同一个异常按catch语句顺序执行,符合的即被捕获。因此如果我们要捕获多个异常,这些异常中如果存在父子关系的话,那么父类一定写在下面。
③try中异常没有被捕获,怎么办?
交给JVM(虚拟机)处理
④如果try中遇到了问题,那么try下面的代码还会执行吗?
不会。直接去执行与之匹配的catch语句。
4.3 抛出异常
5、异常中的常见方法
Throwable的成员方法:
6、自定义异常
步骤:
-
定义异常类
-
写继承关系
-
空参构造
-
带参构造
意义:使控制台的报错信息更加的见名之意