我有一个外部API来进行Web服务调用,并且可以抛出两个异常,我希望彼此区别对待:
com.sum.xml.internal.ws.client.ClientTransportException
- 当网络服务服务器不存在时
com.sun.xml.internal.ws.encoding.soap.DeserializationException
- 当响应是格式错误的XML
当我试图明确地捕获这些异常时,我的Ant compilier说"包不存在"。在某些论坛上,我读到你不应该在你的代码中调用sun包,而应该抓住javax.xml.ws.WebServiceException
。这确实可以编译,但是如何区分这两种异常来区别对待它们呢?
答案 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
}
}