一、异常处理机制
1.1 异常是什么?
异常是指程序 运行期间 ,发生了不正常的事件,这种事件包括,运行时发生了业务逻辑的错误(数据校验的错误,数据类型转换的错误),服务器异常,网络异常等,导致的结果就是会中断运行的程序。
一定要与编译时的错误进行区别
1.2 异常处理的目的是什么?
咱们会根据发生的不同情况,选择针对不同情况的解决方案,目的是为了让程序正常运行下去。发生了异常,让程序自行处理,不至于中断整个应用。
java.util.InputMismatchException
二、异常机制的组成
try :可能发生异常的代码,放在try代码块中
catch:进行异常的捕获,当程序运行的时候,发生了某一个异常,都由catch进行异常的捕获处理
finally:发生或者不发生异常,都要执行的模块,通常情况下,会把一些资源释放的代码,放在里面。
程序发生不发生异常,都一定会执行的到吗?只有一种情况不会被执行。
System.exit(-1);
throw:抛出异常
throws:进行异常声明,告诉方法的调用者,我这个方法可能会存在异常,而我并没有进行异常处理。你在调用的时候要么自行处理,要么继续声明异常。
异常的堆栈信息
e.printStackTrace();//打印异常的堆栈信息
java.lang.ArithmeticException: / by zero
at Manager.main(Manager.java:17)
异常处理机制:
为了使程序变得更加健壮,而引入了异常处理,一般情况是为了捕获和处理运行时异常(网络连接超时异常,运算逻辑异常等),但一般的数据校验工作,还是得由程序员来做处理。
三、常见的异常类型
异常类型 | 说明 |
---|---|
Exception | 异常层次结构的父类 |
ArithmeticException | 算术错误情形,如以零作除数 |
ArrayIndexOutOfBoundsException | 数组下标越界 |
NullPointerException | 尝试访问 null 对象成员 |
ClassNotFoundException | 不能加载所需的类 |
IllegalArgumentException | 方法接收到非法参数 |
ClassCastException | 对象强制类型转换出错 |
NumberFormatException | 数字格式转换异常,如把"abc"转换成数字 |
四、异常的声明
throws Exception 异常的声明
添加异常处理的快捷键是:ctrl+alt+t
五、异常体系总结
java.lang.Throwable
|-----java.lang.Error:一般不编写针对性的代码进行处理。
|-----java.lang.Exception:可以进行异常的处理
|----------编译时异常(checked)
|---------------IOException
|---------------FileNotFoundException 文件找不到异常
|---------------ClassNotFoundException
|----------运行时异常(unchecked,RuntimeException)
|---------------NullPointerException 空指针异常
|---------------ConcurrentModificationException并发修改异常
|---------------ArrayIndexOutOfBoundsException 数组下标越界异常
|---------------ClassCastException 类型转换异常
|---------------NumberFormatException 数字格式化异常
|---------------InputMismatchException 非法的线程状态异常
|---------------ArithmeticException 算术异常