我正在阅读罗伯特·C·马丁的“清洁代码”一书,他强烈建议“提取试验的主体,并将阻挡成为他们自己的功能”
这是书中的例子,要说清楚:
public void delete(Page page)
{
try
{
deletePageAndAllReferences(page);
}
catch (Exception e)
{
logError(e);
}
}
private void deletePageAndAllReferences(Page page) throws Exception {
deletePage(page);
registry.deleteReference(page.name);
configKeys.deleteKey(page.name.makeKey());
}
private void logError(Exception e) {
logger.log(e.getMessage());
}
这样做的原因是:
问题是,我已经在几个项目上工作了几年,而这从来就不是一个规则,即使在他们真正关心干净代码的环境中,我也没有找到跟随它的人。
所以我想知道: 这些书的例子都是基于Java的,我和C#/ .NET一起工作,有来自.NET社区的微软的任何标准或约定吗?
答案 0 :(得分:2)
我能想到的一个原因是,如果catch块有多条线路。例如,如果您记录错误,发送通知电子邮件,并回滚数据库事务或其他内容。如果您开始向catch块添加其他内容,您将发现自己不得不重复代码。