【发布时间】:2017-04-13 16:04:49
【问题描述】:
如果我在一个函数中有多个抛出异常的函数,如果它们相互依赖,那么处理它们的最佳方法是什么?
相互依赖我的意思是,如果某些东西引发异常,则应该跳过引发异常的函数之后的代码。
我想出了三种方法来做到这一点:
异常嵌套
public void parent() {
someFunction();
}
public void someFunction() {
try {
function1();
try {
function2();
...
} catch (Func2xception e) {
System.out.println("Function 2 failed!");
}
} catch (Func1Exception e) {
System.out.println("Function 1 failed!");
}
}
异常返回
public void parent() {
someFunction();
}
public void someFunction() {
try {
function1();
} catch (Func1Exception e) {
System.out.println("Function 1 failed!");
return;
}
try {
function2();
} catch (Func2xception e) {
System.out.println("Function 2 failed!");
return;
}
...
}
为方法签名添加例外
public void parent() {
try {
someFunction();
} catch (Func1Exception e) {
System.out.println("Function 1 failed!");
} catch (Func2Exception e) {
System.out.println("Function 2 failed!");
} ...
}
public void someFunction() throws Func1Exception, Func2Exception {
function1();
function2();
...
}
我有时会同时使用所有这些,这很混乱。有没有关于如何处理此类情况的良好做法?
【问题讨论】:
标签: java exception exception-handling coding-style