第 50 章 处理例外


摘要

如果可能,资源方法捕获的异常应会导致将有用的错误返回到请求使用者。JAX-RS 资源方法可以抛出 WebApplicationException 异常。您还可以提供 ExceptionMapper<E> 实施,将例外映射到适当的响应。

50.1. JAX-RS Exception 类概述

概述

在 JAX-RS 1.x 中,唯一可用的异常类是 WebApplicationException。但是,由于 JAX-WS 2.0,已定义了多个额外的 JAX-RS 例外类。

JAX-RS 运行时级别例外

以下例外是因为 JAX-RS 运行时仅会抛出(也就是说,不得 从应用程序级代码引发这些异常):

ProcessingException
(仅限 JAX-RS 2.0) javax.ws.rs.ProcessingException 可在请求处理期间或在 JAX-RS 运行时中的响应处理期间抛出。例如,可能会因为过滤器链或拦截器链处理中的错误而抛出这个错误。
responseProcessingException
(仅限 JAX-RS 2.0) javax.ws.rs.client.Response ProcessingException 是处理Exception 的子类,可以在 客户端侧 JAX-RS 运行时发生错误时抛出。

JAX-RS 应用级别例外

在应用程序级别代码中要抛出(和捕获)以下例外:

WebApplicationException
javax.ws.rs.WebApplicationException 是一个通用应用级别 JAX-RS 异常,可以在服务器端的应用程序代码中抛出。此异常类型可以封装 HTTP 状态代码、错误消息和(可选)响应消息。详情请查看 第 50.2 节 “使用 WebApplicationException 异常报告”
ClientErrorException
(仅限 JAX-RS 2.0) javax.ws.rs.ClientErrorException 异常类从 WebApplicationException 继承,用于封装 HTTP 4xx 状态代码。
ServerErrorException
(仅限 JAX-RS 2.0) javax.ws.rs.ServerErrorException 异常类从 WebApplicationException 继承,用于封装 HTTP 5xx 状态代码。
RedirectionException
(仅限 JAX-RS 2.0) javax.ws.rs.RedirectionException 异常类从 WebApplicationException 继承,用于封装 HTTP 3xx 状态代码。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.