当程序出现bug或者无法控制的外部环境问题时(如提供的文件不存在,文件内容损坏,网络不可用等),java就会调用异常对象来对问题进行描述。
(一)、java中异常的分类
- 错误:程序中出现的严重问题,通常不能够通过程序来修复解决,上图中Error就是错误。
- 检测性异常:不会通过编译的异常,在上IO异常、SQL异常属于编译异常。
- 运行时异常:可以通过编译,但运行时会报错,上图中RuntimeExcepion就是运行时异常。
(二)、处理异常的方式
1、捕捉异常 (try……catch)
try{
//可能发生的异常代码
}catch(Exception e){
e.printStackTrace();
}finally{
// 最后执行的语句
}
不管try语句中的代码有没有成功执行,finally中的代码最后都会执行。
2、声明异常(throws)
将异常抛给方法调用者自行处理。
public void getUrl(String url) throws Exception{
FileReader fr = new FileReader("d:\\a.txt");
}
(三)、异常的方法重写
- 父类没有声明异常,则子类也不能声明异常。
- 子类重写的方法中所声明的异常,需要与父类该方法所声明的异常保持一致。
- 子类声明异常的范围不能超过父类声明异常的范围
(四)、自定义异常
1、自定义异常的步骤
- 创建一个类并继承exception类或其子类
- 重写构造方法
1、手动抛出异常步骤
- 找到一个合适的异常类。
- 创建一个该异常类的实例化对象。
- 使用 throw 关键字抛出异常。