我目前正在进行代码审查,下面的代码让我跳了起来。我发现这段代码存在多个问题。你是否同意我的观点?如果是这样,我该如何向我的同事解释这是错误的(顽固型......)?
- 捕获一般异常(Exception ex)
- 使用“if(ex 是某物)”而不是另一个 catch 块
- 我们吃SoapException、HttpException和WebException。但如果 Web 服务失败,就没有什么可做的了。
Code:
try
{
// Call to a WebService
}
catch (Exception ex)
{
if (ex is SoapException || ex is HttpException || ex is WebException)
{
// Log Error and eat it.
}
else
{
throw;
}
}
咒语是:
Thus:
就你而言,是的,你应该抓住这些异常并做一些有用的事情(可能不仅仅是吃掉它们——你可以throw
记录后)。
您的编码器正在使用throw
(not throw ex
) 这是good.
这是捕获多个特定异常的方法:
try
{
// Call to a WebService
}
catch (SoapException ex)
{
// Log Error and eat it
}
catch (HttpException ex)
{
// Log Error and eat it
}
catch (WebException ex)
{
// Log Error and eat it
}
这与您的代码的作用几乎相同。您的开发人员可能这样做是为了避免重复“记录错误并吃掉它”块。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)