所以我的问题是:
基本上,我有一个带有trycatch块的方法,我正在捕获WebApplicationException(javax.ws.rs.webapplicationexception(,但是我的方法是抛出notfoundexception(com.sun.jersey.api.api.notfoundexception(。<<<<<<<<<<<<<<<<<<
所以我想这样处理:
try {
} catch (WebApplicationException e | NotFoundException e) {
}
但是,我会收到以下编译时错误:
例外NotFoundException已经被替代方案捕获 WebApplicationException
但是为什么呢?NotFoundException应该来自一个完全不同的软件包(泽西岛(,不是吗?
另外 - 如果我将它们放在单独的catch((块中,它可以正常工作。
请帮助。
您可以首先尝试儿童异常。
try {
} catch (NotFoundException e) {
} catch (WebApplicationException e) {
}
但是为什么呢?NotFoundException应该完全来自一个 不同的软件包(泽西岛(
如果您浏览了比您发现的jersey's NotFoundException
源代码,则NotFoundException extends WebApplicationException
。在这里,NotFoundException
继承了javax.ws.rs.WebApplicationException
类。因此,WebApplicationException
是com.sun.jersey.api.NotFoundException
的父类,这就是为什么您会出现错误的原因。
package com.sun.jersey.api;
import java.net.URI;
import javax.ws.rs.WebApplicationException;
/**
* A HTTP 404 (Not Found) exception.
*
* @author Paul.Sandoz@Sun.Com
*/
public class NotFoundException extends WebApplicationException
您的合成是错误的。请参阅Java Doc。而是这样做:
try {
} catch (WebApplicationException | NotFoundException e) {
}