您的位置:首页 > 编程语言 > Java开发

Java 用 try-catch 代替 if-else 的好处

2016-07-04 14:42 1006 查看
例子:

if-else:业务逻辑通过null表示失败

//call methodA()
if(result!=null){
// do A
} else(){
// do B
}
// do C


try-catch:业务逻辑通过自定义异常表示失败

try{
//call methodA()
// do A
}catch(ExceptionMethodA ex){
// do B
}
// do C


优点:

1. 因为业务异常不printStackTrace()因此性能和if-else是类似的

2. 业务更集中,避免了在if语句中判断null

3. 把错误信息作为自定义业务异常的errorMessage传递,和if-else在多个被调用处写日志相比,仅仅在调用处写一次日志文件。写日志属于I/O也会影响系统性能,越少越好。

缺点:

有时需要把数据库,文件,网络的Exception的信息写入自定义业务异常的errorMessage中,不然必须要给一个返回值

解决: 通过java值传递机制,把返回对象作为参数传入被调用方法中,调用者通过返回对象的属性获得返回值。这样,数据库,文件,网络的Exception直接写日志,不用抛出。

void methodA(ReturnObject foo){
String returnValue="";
// ...
foo.returnValue=returnValue;
}

void main(){
ReturnObject foo = new ReturnObject();
methodA(foo);
System.out.println(foo.returnValue);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 异常