异常的概念
Java 中的异常(Exception)又称为例外,是一个在程序执行期间发生的事件,它中断正在执行的程序的正常指令流。
例如在设计好的程序代码中提示的是“请输入1-3!”假如用户没有按照要求,输入的是“5”,那么就会出现异常情况。
出现异常的原因
1.java 内部错误发生异常,Java 虚拟机产生的异常。
2.编写的程序代码中的错误所产生的异常,例如数组越界异常。这种异常称为未检査的异常。
我们 一般需要在某些类中集中处理这些异常。
3.通过 throw 语句手动生成的异常,这种异常称为检査的异常,用来告知该方法的调用者一些必要的信息。
处理异常的方法
在JAVA中,通过面向对象的方法来处理异常。在一个方法的运行过程中,如果发生了异常,则这个方法会产生代表该异常的一个对象,并把它交给运行时的系统,运行时系统寻找相应的代码来处理这一异常。
(程序运行) – > 异常(对异常进行处理) – >(处理完毕,程序继续运行)
同时我们把生成异常对象,并把它提交给运行时系统的过程称为拋出(throw)异常 ;运行时系统在方法的调用栈中查找,直到找到能够处理该类型异常的对象,这一个过程称为捕获(catch)异常。
Java的异常处理是通过5个关键字来实现的:try、catch、 finally、throw、throws。
捕获异常:
Try – > 执行可能产生 异常的代码
Catch – > 捕获异常
Finally – > 无论是否发生异常,代码总能执行
声明异常:
Throws – > 声明方法可能要抛出的各种异常(后面跟抛出异常的名字)
抛出异常:
Throw – > 手动抛出异常
如果在一个方法体中抛出了异常,如何通知调用者?
throws声明某个方法可能抛出的各种异常,多个异常用逗号隔开
方式1:调用者处理异常
方式2:调用者继续声明异常(main()方法声明的异常由Java虚拟机处理)
常见的异常类型
异常的结构类型 | 说明 |
---|---|
Exception | 异常层次结构的根类 |
ArithmeticException | 算术错误情形 |
ArrayIndexOutOfBoundsException | 数组下标越界 |
NullPointerException | 尝试访问null对象成员 |
ClassNotFoundException | 无法加载所需的类 |
IllegalArgumentException | 方法接收到非法参数 |
ClassCastException | 对象强制类型转换出错 |
NumberFormatException | 数据类型转换异常 |
InputMismatchException | 输入的类型不匹配 |