第50章 例外処理
概要
可能な場合に、リソースメソッドがキャッチした例外をトリガーとして、有用なエラーが要求元コンシューマーに返されるはずです。JAX-RS リソースメソッドは WebApplicationException 例外を出力できます。例外を適切な応答にマッピングするために ExceptionMapper<E> 実装を指定することもできます。
50.1. JAX-RS 例外クラスの概要
概要
JAX-RS 1.x では、利用可能な例外クラスは WebApplicationException
のみです。しかし、JAX-WS 2.0 以降、多くの JAX-RS 例外クラスが追加で定義されています。
JAX-RS ランタイムレベルの例外
以下の例外は、JAX-RS ランタイムでだけ出力されるはずです (つまり、これらの例外はアプリケーションレベルのコードからは出力しないでください)。
ProcessingException
-
(JAX-RS 2.0 のみ) リクエストの処理中または JAX-RS ランタイムでの応答処理中に
javax.ws.rs.ProcessingException
を出力できます。たとえば、フィルターチェーンまたはインターセプターチェーン処理のエラーが原因で、このエラーが出力される可能性があります。 ResponseProcessingException
-
(JAX-RS 2.0 のみ)
javax.ws.rs.client.ResponseProcessingException
はProcessingException
のサブクラスであり、クライアント側 の JAX-RS ランタイムでエラーが発生したときに出力される可能性があります。
JAX-RS アプリケーションレベルの例外
以下の例外は、アプリケーションレベルのコードで出力 (およびキャッチ) されるように設計されています。
WebApplicationException
-
javax.ws.rs.WebApplicationException
は、汎用アプリケーションレベルの JAX-RS 例外で、サーバー側のアプリケーションコードで出力できます。この例外タイプは、HTTP ステータスコード、エラーメッセージ、および応答メッセージをカプセル化 (任意) できます。詳細は、「WebApplicationException 例外を使用したレポート」 を参照してください。 ClientErrorException
-
(JAX-RS 2.0 のみ)
javax.ws.rs.ClientErrorException
例外クラスはWebApplicationException
から継承し、HTTP4xx
ステータスコードをカプセル化するために使用されます。 ServerErrorException
-
(JAX-RS 2.0 のみ)
javax.ws.rs.ServerErrorException
例外クラスはWebApplicationException
から継承し、HTTP5xx
ステータスコードをカプセル化するために使用されます。 RedirectionException
-
(JAX-RS 2.0 のみ)
javax.ws.rs.RedirectionException
例外クラスはWebApplicationException
から継承し、HTTP3xx
ステータスコードをカプセル化するために使用されます。