1.异常的概念
异常,即出错,如0作为除数,找不到类,打开文件错误,数组越界等。异常如果不进行处理,那么程序运行就会结束,如果进行处理,那么会在执行完异常处理代码后继续运行。Java中所有异常类均继承自类Exception。一个Java的Exception是一个描述异常情况的对象。当出现异常情况时,一个Exception对象就产生了,并放到产生这个异常的成员函数里,所有Java异常类都是从Exception类继承来的。
2.捕获异常
异常处理的典型用法如下,将可能出现异常的代码放在try块中,其后由一个或多个catch来捕获相应异常进行处理。注意,只执行第一个匹配的catch块,忽略后面的。
try{
//可能出现异常处理的程序块
}
catch(Exception e){
}catech(AritheticException e){
//一定不会被执行,因为ArithemticException 是Exception的子类
}catch(EOFExceprion e){
//也一定不会被执行,因为也是Exception的子类
}finally{
//无论是否发生异常,发生什么异常,都会被执行
}
如果某个方法中所产生的异常该方法自己没有处理,那么可以在调用该方法中进行处理,如果自己处理了,那么调用它的方法就无法得到该异常。
3.抛出异常
异常除了运行中系统产生以外,也可以主动抛出异常,用关键字throw,如throw new Exception(),注意throw只能抛出Throwable子类的异常。
4.带throws关键字的方法
带throws关键字的方法声明如下
void function () throws Exception{
}
强调调用该方法的方法必须处理可能发生的异常,或者将异常重新定向。假设方法A带throws关键字,而方法B中调用了方法A,则方法B必须有处理方法A中可能产生异常的语句,或者方法B也带throws关键字,指明调用方法B的方法必须处理异常