泽西岛如何处理未映射的异常?

How Jersey Behaves on Not Mapped Exceptions?

Jersey documentation 解释了如何将 Exception 转换为 Response,但它没有详细说明如果我的代码抛出 [=11] 会发生什么=] 不是从 WebApplicationException.

映射或派生的

This link 说:

If the thrown exception is not handled by a mapper, it is propagated and handled by the container (i.e., servlet) JAX-RS is running within.

但这仅解释了 JAX-RS 2.0 的一般行为方式,而不是 Jersey(在本例中为 container)将如何处理此 Exception.

我知道有些人会说 Well, why don't you try it out and see what happens?... 答案是:Because I like to know the documentation and I try to avoid empirical results, since they can be contaminated with coincidences and exceptional cases.

所以,问题是:

Jersey 如何处理未映射的 Exceptions,如 SQLExceptionIllegalArgumentExceptionExceptions 由我的 Resources 之一抛出,我的代码未处理。

球衣总是部署在某个地方。通常,它是一个 servlet 容器(例如在应用程序服务器中或 Tomcat),但在 Java 仅限 SE 的环境中,它可以是例如 Grizzly or even JDK HTTP server. See documentation 用于部署选项。

Jersey 未捕获(或抛出)异常的情况取决于此部署环境。例如,servlet 容器通常捕获异常,记录它并 returns http 状态 500。