【发布时间】:2012-12-07 10:50:27
【问题描述】:
可能重复:
Exceptions or error codes
When is it appropriate to use error codes?
我想知道何时应该使用 C 等语言中使用的错误代码以及何时使用异常。考虑以下示例,其中我们需要一个 getData() 函数,如果成功则返回数据字符串,否则返回错误消息。我们应该如何报告错误?作为异常或错误消息?
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
}
您如何看待以下实现:
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;
}
据我所知,我们不应该使用异常来进行流量控制。您能否评论一下错误代码和异常的正确使用?
【问题讨论】:
-
errorMessage = "Invalid Arguments"; return false;==>throw new IllegalArgumentException("Invalid argument: data was null")(例如)是人们在这种情况下所期望的。 -
想更正标题中的错字,但对该标题有疑问already exists
-
出于某种原因,有些人认为这里不应该使用异常。我不明白为什么不。如果您使用异常,您可以让您的方法返回数据 OR 抛出包含错误消息的异常。您当前的方法(尝试返回 3 条数据)将无法按照您的方式工作。
标签: java error-handling