· 异常:程序运行时可能出现的一些错误
异常处理将会改变程序的控制流程,让程序有机会对错误做出处理
Java中使用throw
关键字抛出一个Exception
子类的实例表示异常发生
在Java中,允许定义方法时声明该方法调用过程中出现的异常,即允许方法调用过程中抛出异常对象,终止当前方法的执行。
可以调用如下方法得到或输出有关异常的信息:
public String getMessage();
public void printStackTrace();
public String toString();
· 使用try-catch
语句处理异常
将可能出现的异常操作放在try
部分,一旦try
部分抛出异常,或调用某个可能抛出异常对象的方法,并且该方法抛出了异常对象,那么try
部分立刻结束执行,转向执行相应的catch
部分
ex:
try{
...
}
catch(Exception ){
...
}
catch(Exception){
...
}
catch
之间的异常对象不能有父子关系,否则,保留其中一个
· 还可以在最后加上finally
,无论是否发生异常,该语句都会执行
如果在try-catch
语句中出现return
语句,该语句仍会执行
如果出现了System.exit(0)
语句,不会执行finally
语句
· 自定义异常类:
可以通过扩展Exception
类定义自己的异常类
一个方法在声明时可以使用throws
关键字声明要产生的若干个异常,并在该方法的方法体中具体给出产生异常的操作
即用相应的异常类创建对象,并用throw
关键字抛出该异常对象,导致该方法结束执行。
· 断言:一般用于程序不准备通过捕获异常来处理的错误
ex:
assert booleanException;
//若booleanException的值是true,继续执行,否则结束程序
assert booleanException:messageException;
//当booleanException的值是false时,输出messageException表达式的值
assert number>=0;
//若number>=0的值为true,程序继续执行,否则结束
Java解释器直接运行应用程序时,默认关闭断言语句,在调试的时候可以使用-ea
启用断言语句