2010-04-22 257 views

回答

3

如果你不打算来处理异常,最好没有任何东西,而不是你提出的建议。所有这些都会增加捕获开销,然后重新抛出相同的异常。

如果您可以处理异常,那么请不要在调用堆栈中传播它。

1

我只能想到当我有那种 catch \ rethrow逻辑是当我想以某种方式记录异常,否则我只是让它传播。

编辑:添加缺少的字空

+0

另外,你可能要抛出或重新抛出异常之前抛出另一个异常,与原来的异常作为内部异常,或者做一些清理(如关闭连接) 。 – lasseeskildsen 2010-04-22 10:01:17

+0

是的,我错过了“空”这个词,因为它不会改变程序流程等等(尽管我通常试图把清理放在最后而不是捕获)。 – 2010-04-22 10:10:19