0

我用 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。

这是“正常”行为吗?这似乎很奇怪。

4

1 回答 1

0

我猜你实际捕捉到的不是 UnauthorizedException,而是其他一些 WebApplicationException。你试过调试器吗?或者只是在 catch 子句中执行 e.printStackTrace() 来确定。

于 2012-04-27T19:33:07.013 回答