0

我知道这会throw保留调用堆栈,但throw ex不会。

显然,我们发现或看到了许多用于

    `throw` 

    `throw new exception("custom Message", ex)`

现在,让我烦恼的是,如果throw ex 不保留堆栈跟踪,我为什么要使用它?

任何有理由使用该throw ex语句的实际场景?

4

1 回答 1

3

因为您对在此 throw 下方公开堆栈跟踪不感兴趣,因为它已记录在其他地方,或者对于异常的调试处理不需要。我什至可以想象在不需要的地方暴露底层逻辑时会有些偏执。(在这种情况下,我希望看到自定义异常/自定义抛出而不是 throw ex)

但通常情况下——这似乎是因为程序员不知道 throw ex 的副作用。

于 2013-10-24T06:42:35.487 回答