我有一个外部 API,它可以进行 Web 服务调用,并且可以抛出两个异常,我希望对这两个异常进行不同的处理:
com.sum.xml.internal.ws.client.ClientTransportException
- 当 Web 服务服务器不存在时com.sun.xml.internal.ws.encoding.soap.DeserializationException
- 当响应是格式错误的 XML 时
当我尝试显式捕获这些异常时,我的 Ant 编译器显示“包不存在”。在一些论坛上,我读到您不应该在代码中调用 sun 包,而应该捕获 javax.xml.ws.WebServiceException
。这确实可以编译,但是我如何区分这两个异常以不同的方式处理它们?
最佳答案
我会这样做:
//...
} catch (WebServiceException e){
String name = e.getClass().getSimpleName();
if(name.equals("ClientTransportException")){
//do what you want
} else if (name.equals("DeserializationException")){
//do something else
}
}
关于java - 区分多个WebServiceExceptions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31235172/