我希望代码调用函数来处理函数中引发的任何异常。如果我写:
try
{
// Code than may raise an exception
}
catch
{
throw;
}
异常将与callstack一起传回。我可以写下以下内容并获得相同的结果吗?在这种情况下是否有理由使用try catch
?
// Code that may raise an exception
答案 0 :(得分:4)
在您提供的场景中,捕获异常然后重新抛出异常的唯一原因是,如果您在catch块中执行其他操作,例如日志记录或清理。否则,它完全是一种无操作。
顺便说一句,如果您确实需要此构造,那么您使用的是throw
,而不是throw e
。前者保留了callstack;后者没有。
答案 1 :(得分:1)
在这种情况下没有理由使用try/catch
。
如果您记录任何信息或将例外封装在更高级别的信息中,则会显示try/catch
。