gpt4 book ai didi

java - 提取 Try/Catch block - Microsoft 约定/标准

转载 作者:行者123 更新时间:2023-12-02 04:05:39 27 4
gpt4 key购买 nike

我正在阅读 Robert C. Martin 的《干净代码》一书,他强烈建议“将 try 和 catch block 的主体提取到它们自己的函数中”

为了清楚起见,这是本书的示例:

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());
}

这样做的原因是:

  • try/catch block 混淆了代码结构,并将错误处理与正常处理混合在一起
  • 良好的分离使代码更易于理解和修改。

问题是,我已经在几个项目上工作了几年,这从来都不是一条规则,而且我没有找到即使在他们真正关心干净代码的环境中也遵循这一规则的人。

所以我想知道:本书的示例基于 Java,而我正在使用 C#/.NET,Microsoft 或 .NET 社区对此有任何标准或约定吗?

最佳答案

我能想到的一个原因是,如果 catch block 有多于一行会怎样。例如,如果您正在记录错误、发送通知电子邮件并回滚数据库事务或其他操作。如果您开始向 catch block 添加其他内容,您会发现自己必须重复代码。

关于java - 提取 Try/Catch block - Microsoft 约定/标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34301876/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com