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来捕获异常,除非你知道异常不会影响到系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值