java代码优化(八)——异常

只针对异常的情况才使用异常

不要将它用在普通的控制流上,比如遍历数组请不要使用以下方式:

		try {
			int a[] = {1,2,34,5};
			int i = 0;
			while(true){
				System.out.println(a[i++]);
			}
		} catch (ArrayIndexOutOfBoundsException e) {
			e.printStackTrace();
		}

对可恢复的情况使用受检异常,对变成错误使用运行异常

原则:如果期望调用者能够适当的恢复,应该使用受检异常。

避免不必要的使用受检异常

过分使用受检异常会使得api使用起来非常不方便。

优先使用标准(常用)的异常

好处:

1.大多数为我们熟悉的异常,易于学习和使用。

2.可读性高。

3.异常类少,内存印迹就越小,装载异常类的时间开销就越小。

抛出与接口相对应的异常

支持链、异常链、异常转译

每个方法抛出的异常都要有文档

在javaDoc中使用@throws来说明异常。

在细节消息中包含能捕获失败的信息

为了捕获失败,异常的细节消息应该包含所有对该异常有贡献的参数和域的值。

努力使失败保持原子性

原则:对象调用一个失败的方法,该对象要保持在调用该方法之前的状态。

保持失败原子性的方法:

①将对象设计为不可变类。

②在调用方法之前先检查参数的有效性。

不要忽略异常

请不要使用try/catch来捕获异常,除非你知道异常不会影响到系统。

猜你喜欢

转载自blog.csdn.net/ZixiangLi/article/details/86503271
今日推荐