一、异常
异常指的是程序运行时发生的错误。比如说:除零错误,数组越界,访问不存在的文件等了。这种情况下程序虽然能编译成功,但在程序运行时会发生异常情况。
异常不一定非要捕获,异常可以分为两大类:
- Checked Exception。 一定要捕获,不然编译都无法通过。
- Unchecked Exception。可以不捕获。
比如以下代码:
public static void main(String[] args) {
int a = Integer.parseInt("a");
System.out.println(a);
}
运行结果会抛出异常
二、Exception(异常类)
大部分异常类都继承于此类。
java以对象方式表示异常,发生错误时会产生并抛出异常对象。
1.try…catch
其为异常捕获机制
形式上表现为:
try{
try 块中可能包含异常的代码
} catch(Exception e){
处理异常的代码
}
- catch后应填入所要捕获异常对象的类型。e表示存储异常对象的变量,可以由系统自动生成。
- 如果catch父类型异常,则可以捕获任意其子类型异常。。
2.异常继承架构
- RuntimeException。属于 Unchecked Exception,无需try…catch。
- Exception其他子类必须try…catch处理。
3.finally
finally里面的语句无论如何一定要执行
try{
int a = Integer.parseInt(“a”);
a语句
} catch(Exception e){
b语句
} finally{
b语句
// 一般在这里进行资源清理,如关闭网络连接,关闭文件等
}
如果parseInt不产生异常,a执行,c执行.
如果parseInt产生异常并被捕获,a不执行,b执行,c执行.