WebApplicationException and NotFoundException in multi-catch



所以我的问题是:

基本上,我有一个带有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类。因此,WebApplicationExceptioncom.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) {

}

最新更新