声明:该文章中所有测试都是在JDK1.8的环境下。
该文章是我在学习Java中的异常处理这方面知识时,做的一些总结和记录。
如果有不正确的地方请大家多多包涵并作出指点,谢谢!
一、异常机制介绍
1.1 基本概念
什么是异常?顾名思义就是非正常的现象。就是Java程序在运行的时候出现不正常的情况。举个例子:我们有一个等式"10/0=?"需要计算,我们都知道,10除以0结果是无意义的,所以我们用Java程序计算该等式就会出现非正常现象。
1.2 异常类体系
在了解了异常的概念之后,那么接下来需要知道Java中异常是如何表示的。
首先需要认识java.lang.Throwable类,这个类是Java中所有错误(Error)和异常(Exception)的超类。
错误(Error):一般是Java虚拟机相关的,无法解决的严重错误。例如系统崩溃,虚拟机错误。
异常(Exception):主要是一些编程错误,可以通过编写代码解决。比如上面讲的计算0作为除数的等式。
所以,我们重点需要学习的是能够通过编写代码解决问题的"异常(Exception)"。
1.3 异常的种类
java.lang.Exception这是所有异常的超类。然后我们查看java.lang.Exception类,发现该异常类下面有好多子类。那这么多异常类,该如何区分和记忆呢?
我们根据程序异常在编译时期能否被检测出来,把异常分为两种:
RuntimeException:运行时异常,也叫非检测性异常。
其他异常:非运行时异常,也叫检测性异常。
下面给非检测性异常和检测性异常举例:
public class Test{
public static void main(String[] args){
//1.非检测性异常
System.out.println(10 / 0); //编译成功,程序可以直接运行,但是在运行代码时会发生算术异常(java.lang.ArithmeticException)
//2.检测性异常
FileInputStream file = new FileInputStream("d:/a.txt"); //编译时直接错误,程序不能直接运行
}
}
复制代码
RuntimeException的主要子类:
ArithmeticException:算术异常
ArrayIndexOutOfBoundsException:数组下标越界异常
NullPointerException:空指针异常
IllegalArgumentException:不合法参数异常
ClassCastException:类型转换异常
NumberFormatException:数字格式异常


被折叠的 条评论
为什么被折叠?



