一异常概念
异常
:指的是程序在执行过程中,出现的非正常的情况,最终会导致
JVM
的
非正常停止。
异常体系
Throwable
体系:
Error
:
严重错误
Error
,无法通过处理的错误,只能事先避免。
Exception
:
表示异常,异常产生后程序员可以通过代码的方式纠
正,使程序继续运行,是必须要处理的。
异常分类
我们平常说的异常就是指
Exception
,因为这类异常一旦出现,我们就要对
代码进行更正,修复程序。
异常
(Exception)
的分类
:
编译时期异常
:checked
异常。在编译时期
,
就会检查
,
如果没有处理异常
,
则编译失败。
(
如日期格式化异常
)
运行时期异常
:runtime
异常。在运行时期
,
检查异常
.
在编译时期
,
运行异
常不会编译器检测
(
不报错
)
。
(
如数学异常
)
public class DemoTest {
public static void main(String[] args) {
//编译异常
//FileInputStream fis=new
FileInputStream("D:\\1.txt");
//运行异常
System.out.println(1/0);
}
}
二.异常的产生
在
java
中,提供了一个
throw
关键字,它用来抛出一个指定的异常对象。
throw
用在方法内
,用来抛出一个异常对象,将这个异常对象传递到调用者
处,并结束当前方法的执行。
throw new 异常类名(参数);
三.处理异常
1.声明处理异常
声明处理异常
:使用
throws
关键字将异常标识出来
,
表示当前方法不处理异
常,而是提醒给调用者
,
让调用者来处理
....
最终会到虚拟机
,
虚拟机直接结束
程序
,
打印异常信息
修饰符 返回值类型 方法名(参数) throws 异常类名1,异常类名2…{ // 可
以抛出一个,也可以多个
}
2.捕获处理异常
捕获处理异常:对异常进行捕获处理,处理完后程序可以向下运行。
try{
编写可能会出现异常的代码
}catch(异常类型 e){
处理异常的代码
//记录日志/打印异常信息/继续抛出异常
}
3.finally 代码块
finally
:有一些特定的代码无论异常是否发生,都需要执行。另外,因为
异常会引发程序跳转,导致有些语句执行不到
try{
//可能会出现异常的代码
}catch(异常的类型 变量名){
//处理异常的代码或者打印异常的信息
}finally{
//无论异常是否发生,都会执行这里的代码(正常情况,都会执行finally中的
代码,一般用来释放资源)
}
五.自定义异常
异常类如何定义
自定义一个编译期异常
:
自定义类 并继承于
java.lang.Exception
。
自定义一个运行时期的异常类
:
自定义类 并继承于
java.lang.RuntimeException
。
public class RegisterException extends RuntimeException {
public RegisterException() {
}
public RegisterException(String message) {
super(message);
}
}