在webservice中,我看到了这段代码:
_ Public Function dosomething() As Boolean Try If successful Then Return True Else Return False End If Catch ex As Exception Throw ex End Try End Function
捕获异常并再次抛出异常有什么意义?我错过了什么吗?
编辑:谢谢你的回答!我认为这是类似的东西,但不确定我是否能够/将重构那些没有任何影响的人.
不要这样做.
如果你确实需要重新抛出异常,只是用throw;
使用throw ex;
擦除堆栈跟踪,是绝对错误的.
我认为没有理由为功能做这件事.但是,如果之前存在一些已删除的错误处理(通常是日志记录),并且开发人员删除了日志处理但未重构代码以删除冗余的try/catch,则可能会出现这种情况.
可能是调试遗留下来的一些代码(你在throw上设置一个断点,这样你就可以检查调试器中的异常).如果我想记录异常然后将其传递给链,我可能会做类似这样的事情,尽管我可能将异常包装在另一个具有更有意义(对我的应用程序)错误消息的异常中.