Axis2:处理用户定义的异常

时间:2011-09-21 13:31:42

标签: web-services

我在Apache Axis2 Webservices中看到了异常处理。 我的Skelton类抛出一个名为“NoUserFound”的Userdefined Exception,它已在WSDL文件中配置

在我的skelton课程中

public samples.quickstart.xsd.GetPriceResponse getPrice(
            samples.quickstart.xsd.GetPrice getPrice0)
            throws GetSolutionByIdFault {

        samples.quickstart.xsd.GetPriceResponse response = new samples.quickstart.xsd.GetPriceResponse();
                 response.set_return("Hi");
        String value = (String) getPrice0.getSymbol();
        if (value.equals("Pavan"))
            throw new GetSolutionByIdFault("name not present");
        return response;
}

在我的客户端类中,我正在以这种方式处理它:

try {
  // Some Logic here 
    }
    catch (AxisFault er) {
    er.getMessage();
    }
    catch (Exception e) {
    e.printStackTrace();
    }

因此,当例如抛出用户定义的异常时(GetSolutionByIdFault),我在AxisFault块中处理它。

这是正确的做法吗?

2 个答案:

答案 0 :(得分:1)

是的,看起来很好 - 如果你愿意,你也可以捕捉到更具体的例外......

答案 1 :(得分:0)

这取决于您为处理异常而必须做的事情。如果您需要根据后端异常执行特殊操作,则需要捕获每个异常并单独处理它们。

通常我以前分别处理异常。