多捕获中的 WebApplicationException 和 NotFoundException
WebApplicationException and NotFoundException in multi-catch
所以我的问题是:
基本上我有一个带有 try-catch 块的方法,我在其中捕获 WebApplicationException (javax.ws.rs.WebApplicationException) 但我的方法抛出 NotFoundException (com.sun.jersey.api.NotFoundException)。
所以我想这样处理:
try {
} catch (WebApplicationException e | NotFoundException e) {
}
但是我得到以下编译时错误:
The exception NotFoundException is already caught by the alternative
WebApplicationException
但这是为什么呢? NotFoundException 应该来自一个完全不同的包(球衣),不是吗?
此外 - 如果我将它们放在单独的 catch() 块中,效果很好。
请帮忙。
你的语法错误。参见 Java Doc。改为这样做:
try {
} catch (WebApplicationException | NotFoundException e) {
}
您可以先尝试子异常。
try {
} catch (NotFoundException e) {
} catch (WebApplicationException e) {
}
But why is that? NotFoundException is supposed to come from a totally
different package (jersey)
如果你通过 jersey's NotFoundException
source code 比你找到的 NotFoundException extends WebApplicationException
。这里,NotFoundException
继承了javax.ws.rs.WebApplicationException
class。所以,WebApplicationException
是 com.sun.jersey.api.NotFoundException
的父级 class,这就是你得到错误的原因。
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
所以我的问题是:
基本上我有一个带有 try-catch 块的方法,我在其中捕获 WebApplicationException (javax.ws.rs.WebApplicationException) 但我的方法抛出 NotFoundException (com.sun.jersey.api.NotFoundException)。
所以我想这样处理:
try {
} catch (WebApplicationException e | NotFoundException e) {
}
但是我得到以下编译时错误:
The exception NotFoundException is already caught by the alternative WebApplicationException
但这是为什么呢? NotFoundException 应该来自一个完全不同的包(球衣),不是吗?
此外 - 如果我将它们放在单独的 catch() 块中,效果很好。
请帮忙。
你的语法错误。参见 Java Doc。改为这样做:
try {
} catch (WebApplicationException | NotFoundException e) {
}
您可以先尝试子异常。
try {
} catch (NotFoundException e) {
} catch (WebApplicationException e) {
}
But why is that? NotFoundException is supposed to come from a totally different package (jersey)
如果你通过 jersey's NotFoundException
source code 比你找到的 NotFoundException extends WebApplicationException
。这里,NotFoundException
继承了javax.ws.rs.WebApplicationException
class。所以,WebApplicationException
是 com.sun.jersey.api.NotFoundException
的父级 class,这就是你得到错误的原因。
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