Java中的异常
Posted 刘润森!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的异常相关的知识,希望对你有一定的参考价值。
一、什么是异常
1.1 Java中的异常
我们每天开车去上班,都有可能碰到堵车、撞车等情况发生,在使用电脑时,突然断电或蓝屏等情况时有发生,这些突发情况就是异常。在程序运行过程也会出现非正常状况,如磁盘空间不足、网络连接中断、除数为零等,这些在程序运行过程发生的不正常的事件就是程序的异常,它会中断正在运行的程序。
【例1.1-01】阅读下列程序
当b的值为0时,发生异常,并中断了程序的执行。
1.2 Java中常见的异常类
方 法 名 | 说 明 |
---|---|
Exception | 异常层次结构的根类,代表以下所有异常 |
ArithmeticException | 算术错误情形,如以零作除数 |
ArrayIndexOutOfBoundsException | 数组下标越界 |
NullPointerException | 尝试访问 null 对象成员 |
ClassNotFoundException | 不能加载所需的类 |
InputMismatchException | 欲得到数据类型与实际输入类型不匹配 |
IllegalArgumentException | 方法接收到非法参数 |
ClassCastException | 对象强制类型转换出错 |
NumberFormatException | 数字格式转换异常,如把"abc"转换成数字 |
二、异常处理机制
当开车上班时在路碰到堵车等突发情况,我们可能已经想好了预备方案,绕行或等待,绝不会因为会出现突发情况而影响出行或上班。同理,当程序发生异常时,我们也应在程序中预先想好了对付异常的处理办法 ,使程序正常运行,这就是程序的异常处理机制。
Java异常处理有三种机制:捕获异常、声明异常和抛出异常。
2.1 捕获异常
1、使用try-catch块捕获异常
【例2.1-01】捕获异常
2、在catch块中处理异常
调用异常对象的方法输出异常信息
方法名 | 说 明 |
---|---|
void printStackTrace() | 输出异常的堆栈信息 |
String getMessage() | 返回异常信息描述字符串,是printStackTrace()输出信息的一部分 |
3、finally代码块
在try-catch块后加入finally块,可以确保无论是否发生异常,finally块中的代码总能被执行。
【例2.1-02】finally代码块
2.2 声明异常
如果方法中代码发生异常,编写者不想在方法中处理或者不能在方法中处理,将异常处理的权限交给调用者,Java允许在方法中允许声明可能发生的异常,由调用者在调用方法时,强制其捕获异常。
【例2.2-01】声明异常
2.3 抛出异常
在程序中,除了系统自动抛出异常外,有些问题需要程序员自行抛出异常。
throw new Exception(异常信息)
一般在方法中抛出异常,并在方法声明异常。
【例2.3-01】抛出异常
三、异常分类
- Error:错误类,表示Java程序运行时资源耗尽或系统内部错误,这类错误属于严重错误,程序本身不能修复。
- Exception:异常类,程序本身是可以处理的错误。
- 编译时异常:除了RuntimeException异常都是编译时异常。Java会对异常进行检查,如果有异常就必须对异常进行处理,否则编译不能通过,这类异常也称为checked异常。
- 运行时异常:RuntimeException异常,Java编译器不会对此类异常进行检查,不需要进行异常处理,是程序在运行过程发生的逻辑错误,也称为非checked异常。
以上是关于Java中的异常的主要内容,如果未能解决你的问题,请参考以下文章