java - Jersey 对未映射异常的行为如何?

标签 java exception jersey jax-rs jersey-2.0

Jersey documentation解释了如何将 Exception 转换为 Response,但它未能详细说明如果我的代码抛出未映射的 Exception 将会发生什么或派生自 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(它是中的容器)的行为方式。在这种情况下,将处理这个异常

我知道有些人会说好吧,你为什么不尝试一下,看看会发生什么?...答案是:因为我喜欢了解文档我尽量避免实证结果,因为它们可能会受到巧合和异常(exception)情况的影响

所以,问题是:

Jersey 如何处理未映射的异常,例如 SQLExceptionIllegalArgumentException?由我的资源之一引发且未由我的代码处理的异常

最佳答案

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

Jersey 未捕获(或抛出)的异常会发生什么情况取决于此部署环境。例如,Servlet 容器通常会捕获异常,将其记录下来并返回 http 状态 500。

关于java - Jersey 对未映射异常的行为如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48218871/

相关文章:

java - 你能在 Jersey 中有一个可选的 QueryParam 吗?

java - 为什么我的 `main()` 没有捕获在 junit 测试中 `timer` 中抛出的异常?

java - 有没有简单明了的解释来说明修改 Java catch 子句中的异常参数 ex 的充分理由?

java - Rest Api Hit Browser 和 Postman 的区别

java - JMX 通知设计

c# - .NET ReactiveExtension 观察器未捕获 OnError 中的错误

json - 如何自定义将 JAXB 对象列表序列化为 JSON?

javax.ws.rs.NotFoundException : HTTP 404 Not Found angular 1. 5

java - 启动一个Web容器,然后使用Cargo maven2插件部署 war

java - drop-and-create-tables 太容易掉落