文章目录
前言
异常处理的作用:对jaba应用中各种类型异常的发现,捕获,和有效处理。能够处理程序运行中软件设计,硬件设备,用户输入错误等原因造成的错误。
一.异常概述
1.想打开的文件不存在。
2.网络连接中断。
3.操作数超出预定范围。
4.访问的数据库打不开。
5.正在装载的类文件丢失。
二.异常处理机制
1.异常处理机制
1.异常对象:当一个方法运行时出现一长时间,该方法会创建一个对象,这个对象叫做异常对象。
2.抛出异常:创建异常对象并抛给运行时系统的过程称为抛出异常。
3.异常处理程序:能够处理异常的语句块称为异常处理程序。
java语言提供了捕获异常与声明抛弃异常两种处理异常的机制。
2.异常的类层次
1.错误类
错误类继承与Error类。有程序外部运行环境出现错误引起,程序通常不必处理这类异常。
2.运行时异常类
异常类继承自RuntimeException类,代表java虚拟机在运行时所生成的异常。该异常出现普遍,要求程序处理对程序可读性和高效性带来不好影响,因此恶意部队运行时异常做出处理。
3.非运行时异常类(代码需要处理)
除了运行时异常以外,继承与Exception类的子类都统称为运行时异常,java编译器要求程序必须捕获或者声明抛弃异常。
4.Throwable类
是所有有异常类的父类,可以用具体方法去实现查找信息或处理。
3.异常的处理
对于非运行时异常程序必须捕获或者声明抛弃异常,否则无法通过编译
1.捕获异常
捕获异常通过try-catch-finally语句实现,格式代码如下
try{
...
}catch(exceptionType e1){
...
}
...
finally{
...
}
语句块
1.try
捕获异常第一步。选定一场范围,在执行过程中可能会抛出异常。
2.catch
每一个try可以伴随一个或多个catch用于处理 try中产生的异常事件。catch中的括号中是一个形参,用来指明它所捕获的异常类型,这个类必须是Throwable的子类。
捕获异常的顺序与catch语句的顺序有关,当捕获一个异常剩下的catch就不在匹配,因此安排catch应该先安排最特殊的,在安排一般异常
即先安排子类,后安排父类
3.finally
在try语句块退出后,无论try中是否有异常都会被执行,此结构非必需,可有可无,作用是防止资源泄露,进行文件关闭或其他资源回收操作是,将相关代码放入finally中确保资源正确回收,以免资源泄露。
2.声明抛弃异常
1.什么情况下使用:
如果在一个方法中发生了异常但是不知如何处理,则声明异常使得异常往后传播直到有合适方法捕获为止。
2.声明
throws子句声明,在方法旁边。
3.抛出异常
产生异常的过程,也同样通过throw来实现。
三.自定义异常类
如果java提供的系统异常类型不能满足程序设计的需求则可以设计自己的异常类型
用户自定义异常类型必须是Throwable直接或间接字了,Java推荐异常类型以Exception为直接弗雷
格式如下
class UserException extends Exception{
...
}