WebApplicationException怪异

时间:2012-04-27 18:05:00

标签: jersey

我使用UnauthorizedException扩展了WebApplicationException:

public class UnauthorizedException extends WebApplicationException {

我的REST类扩展了一个实现authCheck的基类,这是一个子类方法:

try{
  authCheck();
  RecordingList recordings = CODIRecording.getRecordings(type, timeframe);
  return Response.ok().entity(recordings).build();
}catch(WebApplicationException e){
  throw e; // Results in 500
  throw new UnauthorizedException(); // Results in 401
}

当authCheck失败时,它会抛出UnauthorizedException。如果子类方法没有catch / try(异常只是从authCheck传播出来),或者如果它重新抛出异常,则客户端会收到500.

如果方法的catch抛出 NEW UnauthorizedException,则客户端会按预期收到401。

这是“正常”行为吗?这看起来很奇怪。

1 个答案:

答案 0 :(得分:0)

我猜你实际上在那里捕获的不是UnauthorizedException,而是其他一些WebApplicationException。你试过调试器吗?或者只需在catch子句中执行e.printStackTrace()即可。