Android 开关错误代码

Android 开关错误代码,android,Android,如何在Android中创建错误处理程序。在.Net中,我只需创建一个处理程序来切换错误代码,从而将所需的正确响应转发给用户 在本例中,我使用的是一个被try和catch包围的SAX解析器,当出现错误时,我显然会收到一条消息,但没有唯一的错误ID。try\catch块可能捕获了十个错误,但我如何区分这些错误,以便尝试处理预期的错误 理想情况下是这样的: switch (e.getErrorID){ case 1000: //Handle This Expected Error break;

如何在Android中创建错误处理程序。在.Net中,我只需创建一个处理程序来切换错误代码,从而将所需的正确响应转发给用户

在本例中,我使用的是一个被try和catch包围的SAX解析器,当出现错误时,我显然会收到一条消息,但没有唯一的错误ID。try\catch块可能捕获了十个错误,但我如何区分这些错误,以便尝试处理预期的错误

理想情况下是这样的:

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())parser.setErrorHandler(新的xmlErrorHandler())