首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >差异错误码或例外

差异错误码或例外
EN

Stack Overflow用户
提问于 2012-12-20 00:11:00
回答 1查看 2.1K关注 0票数 1

可能重复: Exceptions or error codes When is it appropriate to use error codes?

我想知道什么时候应该使用C等语言中使用的错误代码,以及何时使用异常。考虑下面的示例,其中我们需要一个getData()函数,如果成功,它应该返回一串数据,否则就会返回错误消息。我们应该如何报告错误?作为异常还是错误消息?

代码语言:javascript
复制
public int fo(arguments) {
    //some code
    String data = "";
    String errMsg = "";
    boolean rc = getData(arguments, data, errMsg);
    // do something based on the results of getData()
    // and report error messages in case of errors
}

您对以下实现有何看法:

代码语言:javascript
复制
boolean getData(some arguments, String data, String errorMessage){
    {
        //check arguments for null pointers or invalid values and return error
        //message
        errorMessage = "Invalid Arguments";
        return false;
    }
    {
        //check for other errors
        errorMessage = "Some Error";
        return false;
    }
    // no error, return valid data
    data = "some valid data";
    return true;
}

据我所知,我们不应该使用异常来控制流。请您对错误代码和例外情况的正确使用作出评论。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-20 00:16:06

首先,您的示例无法工作,因为参数是在Java中通过值传递的。因此,即使您更改了errorMessage的值,该更改也不会在方法之外可见。

但是,假设您修复了这个错误并正确返回错误代码,那么问题归结为您想要在哪里处理错误。

异常在调用堆栈上自动“冒泡”,直到它们找到处理特定类型异常的catch块。这为您提供了在更高级别上处理它们的机会,而如果您返回错误代码,则必须立即在直接调用者中处理该错误代码(这可能会为其调用方设置另一个错误代码等等,当您看到此模式时,您可以确定您应该抛出一个异常)。

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

https://stackoverflow.com/questions/13963337

复制
相关文章

相似问题

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