我希望调用函数的代码能够处理函数中引发的任何异常。如果我写:
try
{
// Code than may raise an exception
}
catch
{
throw;
}
异常将随调用堆栈一起传回。我可以改写以下内容并得到相同的结果吗?在这种情况下有什么理由使用 try catch
吗?
// Code that may raise an exception
最佳答案
在您提出的场景中,捕获然后重新抛出异常的唯一原因是您在 catch block 中执行其他操作,例如记录或清理。否则,这完全是一个空操作。
顺便说一句,如果您确实需要此构造,那么您使用的是 throw
,而不是 throw e
,这对您来说是件好事。前者保留了调用堆栈;后者则不然。
关于c# - 为什么抛出异常而不是让代码抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18553819/