JAVA有着非常强大的异常处理机制,以下用简单易懂的方式更好的理解其机制。
一.异常的分类
非检查性异常:一般是代码写有问题,如除以0等等。
检查性异常:一般是程序的运行环境导致的,因程序员无法干预用户如何使用程序而导致出现的潜在性错误
二.异常处理机制说明:
异常类型也是一个类,只有当某个错误被实例成异常类时才能被JVM识别和处理。异常类型的顶级父类是Throwable类,其下有Error和Exception类:Error类是JVM的错误,核心是Exception类。当出现异常时,或者使用try..catch等或者抛出throw,不然无法通过编译,Try是自己处理,throw 是让调用者处理。
三.异常处理的基本语法:
1.try...catch..final.
try{
可能出现异常的语句块;
}catch(Exception ex1){
出现ex1异常执行操作
}catch(Exception ex2){
出现ex2异常执行的操作
}(final{
最后都会执行的操作
})
注意:如果try..catch...final都有返回值时,final的返回值将会覆盖以上两者的值,也 就是说除非System.exixt(()退出,否则final里的语句都会执行;2.如果异常类是继承关系,应该由小到大排列;3.try..catch..final都是块标志,他们不共享局部变量;
4.程序在出现异常处终止,不执行之后的任何操作。
2.Throw :抛出异常让其上层处理
如:
public void testException() throws IOException
{
//FileInputStream的构造函数会抛出FileNotFoundException
FileInputStream fileIn = new FileInputStream("E:\\a.txt");
int word;
//read方法会抛出IOException
while((word = fileIn.read())!=-1)
{
System.out.print((char)word);
}
//close方法会抛出IOException
fileIn.clos
}
关于自定义异常,以后再说吧。