产生异常的原因多种多样,大致有:
系统资源不可用,如,内存分配失败,文件打开失败,数据库打开失败
程序控制不当,如,除数为零,负数开方
当发生异常的时候,系统会:
1、发生异常的部分,产生系统定义的错误信息
2、程序意外终止,将控制权返回系统
3、程序中对所有已分配资源的状态保持不变,这样会导致资源泄漏
所以我们需要对异常进行处理
try{........... //需要监视的,可能产生异常的代码部分
}catch(Expection e){ //对异常进行捕捉
...................... //对异常进行的处理,如,输出异常信息
}finally{ //可选部分,必须与try一起使用,必须执行的部分
.....................
}
Expection 与 Error
Expection 绝大多数应用程序能捕获的,出现在编译和运行时的错误,需要开发人员去处理的故障
Error 一个合理的应用程序不能截获的错误,大多是反常情况,无需开发人员处理的
throw 自定义异常,手工抛出
例子:
package Test;
//定义一个异常类:Test_MyExpection,重写构造方法
public class Test_MyExpection extends Exception {
Test_MyExpection(String sss) {
super(sss);
}
}
package Test;
//用于测试的类
public class Test_Test {
public static void main(String[] args) {
int i = 1;
try { //try......catch 语句里面,throw语句定义异常的内容和具体的操作
if (i == 1) {
throw(new Test_MyExpection("iii"));
}
} catch (Test_MyExpection e) {
System.out.println(e.getMessage()); //抛出该异常产生的信息
}
}
}