软件测试修炼之路 A Tester

Java异常与异常处理

2016-04-11
Dex

异常简介

阻止当前方法或作用域,称之为异常

Throwable类是Java语言中的所有错误或异常的超类。

两个子类是 Error 和 Exception

包括RuntimeException(非检查异常)和(检查异常)

常见的RuntimeException异常有:NullPointerException(空指针异常)、ArrayIndexOutOfBoundsException(数组下表越界异常)、ClassCastException(类型转换异常)、ArithmeticException(算术异常)。

RuntimeException有Java虚拟机自动抛出、自动捕获。

常见的检查异常有:IOException(文件异常)、SQLException(SQL异常)等等,需要程旭员自行添加语句捕获该类异常。

处理异常

try-catch 以及 try-catch-finally

语法:

try{
	//一些会抛出异常的方法
}catch(Exception e){
	//处理该异常的代码块
}

抛出异常后,程序会终止执行。程序的控制权将被移交给catch块中的异常处理程序

利用多个catch块捕获异常进行处理。

多重catch异常处理,先处理子类异常。

语法:

try{
	//一些会抛出异常的方法
}catch(Exception e){
	//处理该异常的代码块
}catch(Exception 2e){
	//处理Exception2的代码块
}...(n个catch块)...{
}finally{
	//最终将要执行的一些代码
}

Java中的异常抛出以及自定义异常

throw —— 将产生的异常抛出(动作)

throws —— 声明将要抛出的何种类型的异常(声明)

public void 方法名(参数列表)	throws 异常列表{
	//调用会抛出异常的方法或者:
	throw new Exception();
}

自定义异常

class 自定义异常类 extends 异常类型{

}

Java中的异常链

经验总结

1.处理运行时异常时,采用逻辑去合理规避同时辅助try-catch处理

2.在多重catch块后面,可以加一个catch(Exception)来处理可能会被遗漏的异常

3.对于不确定的代码,也可以加上try-catch,处理潜在的异常

4.尽量去处理异常,切记只是简单的调用printStackTrace()去打印输出

5.具体如何处理异常,要根据不同的业务需求和异常类型去决定

6.尽量添加finally语句块去释放占用的资源


Similar Posts

上一篇 Java多态

Comments