一、什么是Java异常?
Java异常就是代码编译和运行中出现的一些特殊情况,通过异常我们可以查找出异常的代码进行修复。
二、Java的异常层次结构图:
Java异常分为Error和Exception两大类,都继承自Throwable类,其中Error是编译和系统错误,不允许捕获;Exception表示标准java库激发的异常;Exception又分IOException和RuntimeException两类。
三、检查异常和非检查异常
检查异常(checked exceptions)和非检查的异常(unchecked exceptions)。
其中根据Exception异常进行划分,可分为运行时异常和非运行时异常。
检查异常:
what:编译器要求强制去检查的异常,必须由人工去处理
how:添加try catch/ throws 异常
where:除了Error和RuntimeException及其子类,都属于检查异常
比如:IOException,文件操作的时候编译器强制进行异常处理
非检查异常:
what:编译器不要求强制处置的异常,及时有可能运行时抛异常,但仍可以通过编译
why:因为有些异常在编译期无法捕捉到,比如0做被除数、或数组越界等
where:运行时异常RuntimeException及其子类,以及Error类
how:1、捕获 2、不处理 3、抛出
运行时异常:
RuntimeException及其子类都属于运行时异常,比如NullPointException、IndexOutOfBoundsException都属于运行时异常
非运行时异常:
除RuntimeException及其子类和Error类外,其他都属于非运行时异常,在编码及编译阶段就应该处理的异常,比如IOException、EOFException等