可能重复: 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;
}据我所知,我们不应该使用异常来控制流。请您对错误代码和例外情况的正确使用作出评论。
发布于 2012-12-20 00:16:06
首先,您的示例无法工作,因为参数是在Java中通过值传递的。因此,即使您更改了errorMessage的值,该更改也不会在方法之外可见。
但是,假设您修复了这个错误并正确返回错误代码,那么问题归结为您想要在哪里处理错误。
异常在调用堆栈上自动“冒泡”,直到它们找到处理特定类型异常的catch块。这为您提供了在更高级别上处理它们的机会,而如果您返回错误代码,则必须立即在直接调用者中处理该错误代码(这可能会为其调用方设置另一个错误代码等等,当您看到此模式时,您可以确定您应该抛出一个异常)。
https://stackoverflow.com/questions/13963337
复制相似问题