1、什么是异常
异常是阻止当前方法继续执行出现的问题,每一个异常都是一个类。
2、异常的分类
根基类:Object
派生得到Throwable
派生得到Error(错误) 以及 Exception(异常)
Exception分为两大子类:
(1)运行期异常(运行报错)
父类:
RuntimeException(运行期异常):
子类:
ArithmeticException 数学异常(不符合数学规律)
ArraystoreException 数组存储异常
ArrayIndexOutOfBoundsException 数组下标越界
NullPointerException 对空进行点访问操作
(2)编译期异常(书写就标红)
没有编译期父类,剩下的都是编译期异常
子类:
ClassNotFoundException 未找到类异常
(不属于编译期和运行期异常)ILLegalaccessException 访问权限异常
CloneNotSupportedException 克隆不支持的异常
InstantiationException 实例化异常
InterruptedException 中断异常
NoSuchFieldException 没有这样的属性异常
NoSuchMethodException 没有这样的方法异常
3、异常关键字
try、catch、finally、throw、throws
1)catch:
(1)一个try块,对应一个或多个catch块
(2)捕获关心的异常,不能细划分异常
(3)先抓子类异常,再抓父类
2)try块:
(1)如果当前这一条代码发生异常,后续代码不会被执行
(2)try块处理异常,避免嵌套问题
3)finally:必定会被执行到
4)throw 扔异常对象,不想处理,扔出去
没办法处理的返回和异常
throw new Exception;
例如:throw new Exception(“数组为空异常”);
5)throws 扔异常类,不处理异常,谁调用谁处理
方法名 后扔
public int peek() theows InterruptedException
如果main也不想处理,继续扔,可以main() throws Exception