java - 区分多个WebServiceExceptions?

时间:2015-07-05 21:29:04

标签: java xml web-services exception soap

我有一个外部API来进行Web服务调用,并且可以抛出两个异常,我希望彼此区别对待:

  1. com.sum.xml.internal.ws.client.ClientTransportException - 当网络服务服务器不存在时

  2. com.sun.xml.internal.ws.encoding.soap.DeserializationException - 当响应是格式错误的XML

  3. 当我试图明确地捕获这些异常时,我的Ant compilier说"包不存在"。在某些论坛上,我读到你不应该在你的代码中调用sun包,而应该抓住javax.xml.ws.WebServiceException。这确实可以编译,但是如何区分这两种异常来区别对待它们呢?

1 个答案:

答案 0 :(得分:1)

我会这样做:

//...
} catch (WebServiceException e){
    String name = e.getClass().getSimpleName();
    if(name.equals("ClientTransportException")){
        //do what you want
    } else if (name.equals("DeserializationException")){
        //do something else
    }

}