首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何实现错误处理

如何实现错误处理
EN

Software Engineering用户
提问于 2013-09-09 12:42:54
回答 1查看 3.4K关注 0票数 14

尽管我已经在专业水平上编程了几年,但我仍然不完全理解错误处理。尽管我的应用程序工作良好,但错误处理并不是在专业级别上实现的,而是多种技术的混合和匹配。

我的错误处理没有任何结构。我想学习并理解它是如何在专业水平上实现的。这是我缺乏知识的一个领域。

何时应该使用异常,何时应该返回成功状态,以便在逻辑流中进行检查?混合异常和返回状态可以吗?

我主要是用C#编码。

EN

回答 1

Software Engineering用户

发布于 2013-09-10 14:50:23

我认为MainMa的名单很完整。我只想补充我自己的几点:

  1. 阅读Eric的文章关于他如何分类异常的文章。特别重要的是他关于不捕获实际上是代码中错误的异常的观点。把代码改了!
  2. 如果您知道异常可能发生,并且您可以对它做一些事情,那么处理它,但是限制您的范围-捕捉并捕获您期望的特定异常。也就是说,不要这样做:
代码语言:javascript
运行
复制
public void Foo() {
    try {
        //get input from use
        //do calculations
        //open file
    }
    catch (Exception ex) {
       //handle exception
    }
}

相反,请这样做:

代码语言:javascript
运行
复制
public void Foo() {
    //get input from use
    //do calculations
    try {
        //open file
    }
    catch (FileOpenException ex) {
       //handle exception
    }
}
  • 不要对控制流使用异常。例如,不要在查找对话框中抛出一个ClientNotFoundException (在这种情况下,未找到的客户端是非例外的),并期望调用代码在发生这种情况时显示一个“没有发现的结果”消息。
  • 别吞下例外!
  • 请记住,真正处理异常只能意味着三件事:
    1. 重试手术。只有在问题是暂时的情况下才有效。
    2. 尝试另一种选择。
    3. 把问题通知别人。只有在通知是可操作的情况下才有效,这意味着用户可以对其做一些事情。

如果这些选项都不适用,那么您可能不应该捕获该异常。不过,您应该将其记录下来,然后取消操作或关闭。当然,这取决于您在正确性和健壮性方面的需求。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/210900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档