我有一个类似这样的方法:
int f() {
try {
int i = process();
return i;
} catch(Exception ex) {
ThrowSpecificFault(ex);
}
}
这会产生一个编译错误,提示“并非所有的代码路径都返回值”。但在我的情况下,ThrowSpecificFault() 总是会抛出(适当的)异常。因此我被迫在末尾放置一个返回值,但这很丑陋。
这个模式最初的目的是因为“process()”是对外部 Web 服务的调用,但需要将各种不同的异常转换以匹配客户端预期的接口(~外观模式,我想)。
有没有更简洁的方法来做到这一点?