sir*_*ank 3 c# error-handling try-catch
为什么有人会这样做?我不明白.我可以在不影响代码的情况下删除此try-catch块吗?
try
{
Collection<SvnLogEventArgs> svnLog = GetSVNRevisionsLog(lastRevision, currentRevision, svnUrl);
svnInfo = PopulateOutput(svnLog, svnUrl.ToString());
}
catch (Exception e)
{
throw e;
}
Run Code Online (Sandbox Code Playgroud)
为什么有人会这样做?
你不应该这样做.你最接近的将是如果你想添加一些日志记录,在这种情况下你应该写:
try
{
/// Do something
}
catch (Exception e)
{
LogException(e); // Do some logging
throw; // Don't use throw e
}
Run Code Online (Sandbox Code Playgroud)
该throw
语句单独使用时会保留异常调用堆栈信息.
话虽这么说,如果你没有其他逻辑(如日志记录),绝对没有理由捕获异常.只有在您需要记录/处理它们,或者您可以合理地处理错误并正确恢复时,才应捕获异常.