Android 开关错误代码
如何在Android中创建错误处理程序。在.Net中,我只需创建一个处理程序来切换错误代码,从而将所需的正确响应转发给用户 在本例中,我使用的是一个被try和catch包围的SAX解析器,当出现错误时,我显然会收到一条消息,但没有唯一的错误ID。try\catch块可能捕获了十个错误,但我如何区分这些错误,以便尝试处理预期的错误 理想情况下是这样的:Android 开关错误代码,android,Android,如何在Android中创建错误处理程序。在.Net中,我只需创建一个处理程序来切换错误代码,从而将所需的正确响应转发给用户 在本例中,我使用的是一个被try和catch包围的SAX解析器,当出现错误时,我显然会收到一条消息,但没有唯一的错误ID。try\catch块可能捕获了十个错误,但我如何区分这些错误,以便尝试处理预期的错误 理想情况下是这样的: switch (e.getErrorID){ case 1000: //Handle This Expected Error break;
switch (e.getErrorID){
case 1000:
//Handle This Expected Error
break;
case 1064:
//Handle This Expected Error
break;
case 2025:
//Handle This Expected Error
break;
default:
//Unexpexted Error
}
也许我应该提到,我试图捕获的错误是空文档您可以抛出特定的异常(可能所有的异常都扩展了一个公共的基本异常),并在自己的
catch
块中处理每个异常
您也可以使用getErrorCode
方法实现一个通用异常,您可以在一个catch
块中进行切换。(顺便说一句,这是在中使用的方法)
具体的例外做法:
throw new MissingAttributeException("a_mandatory_attr");
throw new InvalidAttributeValueException("some_attr", badValue);
throw new GenericParsingException(MISSING_ATTRIBUTE, "a_mandatory_attr");
throw new GenericParsingException(INVALID_ATTRIBUTE_VALUE, "some_attr", badValue);
或一般方法:
throw new MissingAttributeException("a_mandatory_attr");
throw new InvalidAttributeValueException("some_attr", badValue);
throw new GenericParsingException(MISSING_ATTRIBUTE, "a_mandatory_attr");
throw new GenericParsingException(INVALID_ATTRIBUTE_VALUE, "some_attr", badValue);
您可能会发现抛出和处理特定异常可能更容易。这使得构建和访问不同的内容变得很容易。您可以抛出特定的异常(可能所有的异常都扩展了一个公共的基本异常),并在自己的
catch
块中处理每个异常
您也可以使用getErrorCode
方法实现一个通用异常,您可以在一个catch
块中进行切换。(顺便说一句,这是在中使用的方法)
具体的例外做法:
throw new MissingAttributeException("a_mandatory_attr");
throw new InvalidAttributeValueException("some_attr", badValue);
throw new GenericParsingException(MISSING_ATTRIBUTE, "a_mandatory_attr");
throw new GenericParsingException(INVALID_ATTRIBUTE_VALUE, "some_attr", badValue);
或一般方法:
throw new MissingAttributeException("a_mandatory_attr");
throw new InvalidAttributeValueException("some_attr", badValue);
throw new GenericParsingException(MISSING_ATTRIBUTE, "a_mandatory_attr");
throw new GenericParsingException(INVALID_ATTRIBUTE_VALUE, "some_attr", badValue);
您可能会发现抛出和处理特定异常可能更容易。这使得使用和访问不同内容变得容易。Jay Dee
在Java中,通常不赞成使用通用异常处理程序。此链接提供了一个很好的解释:
你会想做一些更像
try {
//stuff
} catch (NumberFormatException e) {
//specific handling for NumberFormatException
} catch (NullPointerException e) {
//specific handling for NullPointerException
}
杰伊·迪
在Java中,通常不赞成使用通用异常处理程序。此链接提供了一个很好的解释:
你会想做一些更像
try {
//stuff
} catch (NumberFormatException e) {
//specific handling for NumberFormatException
} catch (NullPointerException e) {
//specific handling for NullPointerException
}
您可以在代码中使用多个catch块吗
try {
// code
}catch(error1 e){
//error1 handling code
}catch(error2 e){
//error2 handling
}
等等。在代码中可以使用多个catch块吗
try {
// code
}catch(error1 e){
//error1 handling code
}catch(error2 e){
//error2 handling
}
诸如此类。我不愿意按照您可以想象的皱眉路径走,但是我现在正在研究parser.getErrorHandler(新的xmlErrorHandler()),但不太明白,因为引发的错误似乎没有调用处理程序。。。然而?我不喜欢像你想象的那样沿着一条皱眉的路径走,但是我现在正在研究parser.getErrorHandler(新的xmlErrorHandler()),但还没有完全理解,因为引发的错误似乎没有调用处理程序。。。然而?啊,啊,啊,你也许可以进一步帮助我,我知道抛出这些异常应该由解析器处理程序来处理,我现在已经实现了一个单独的类作为处理程序,但是处理程序没有被调用,仍然依赖try\catch语句。我的处理程序设置如下>parser.setErrorHandler(新的xmlErrorHandler())