Menu Close

50.3. JAX-RS 2.0 例外型

概要

JAX-RS 2.0 では、アプリケーションコードでスロー (およびキャッチ) できる特定の HTTP 例外型が導入されています (既存の WebApplicationException 例外型に加えて)。これらの例外型は、HTTP クライアントエラー (HTTP 4xx ステータスコード) または HTTP サーバーエラー (HTTP 5xx ステータスコード) のいずれかに対して、標準の HTTP ステータスコードをラッピングするために使用できます。

例外の階層

図50.1「JAX-RS 2.0 アプリケーション例外階層」 は、JAX-RS 2.0 でサポートされるアプリケーションレベルの例外の階層を示しています。

図50.1 JAX-RS 2.0 アプリケーション例外階層

exceptions 01

WebApplicationException クラス

javax.ws.rs.WebApplicationException 例外クラス (JAX-RS 1.x 以降で使用可能) は JAX-RS 2.0 例外階層のベースにあり、「WebApplicationException 例外を使用したレポート」 で詳細に説明されています。

ClientErrorException クラス

javax.ws.rs.ClientErrorException 例外クラスは、HTTP クライアントエラー (HTTP 4xx ステータスコード) をカプセル化するために使用されます。アプリケーションコードで、この例外またはそのサブクラスの 1 つをスローできます。

ServerErrorException クラス

javax.ws.rs.ServerErrorException 例外クラスは、HTTP サーバーエラー (HTTP 5xx ステータスコード) をカプセル化するために使用されます。アプリケーションコードで、この例外またはそのサブクラスの 1 つをスローできます。

RedirectionException クラス

javax.ws.rs.RedirectionException 例外クラスは、HTTP リクエストのリダイレクト (HTTP 3xx ステータスコード) をカプセル化するために使用されます。このクラスのコンストラクターは、リダイレクトの場所を指定する URI 引数を取ります。リダイレクト URI は getLocation() メソッドからアクセスできます。通常、HTTP リダイレクトはクライアント側で透過的です。

クライアント例外サブクラス

JAX-RS 2.0 アプリケーションで、以下の HTTP クライアント例外 (HTTP 4xx ステータスコード) を発生させることができます。

BadRequestException
400 Bad Request HTTP エラーステータスをカプセル化します。
ForbiddenException
403 Forbidden HTTP エラーステータスをカプセル化します。
NotAcceptableException
406 Not Acceptable HTTP エラーステータスをカプセル化します。
NotAllowedException
405 Method Not Allowed HTTP エラーステータスをカプセル化します。
NotAuthorizedException

401 Unauthorized HTTP エラーステータスをカプセル化します。この例外は、次のいずれかのケースで発生する可能性があります。

  • クライアントが (HTTP Authorization ヘッダーで) 必要なクレデンシャルを送信しなかった。
  • クライアントが提示したクレデンシャルが有効ではなかった。
NotFoundException
404 Not Found HTTP エラーステータスをカプセル化します。
NotSupportedException
415 Unsupported Media Type HTTP エラーステータスをカプセル化します。

サーバー例外サブクラス

JAX-RS 2.0 アプリケーションで、以下の HTTP サーバー例外 (HTTP 5xx ステータスコード) を発生させることができます。

InternalServerErrorException
500 Internal Server Error HTTP エラーステータスをカプセル化します。
ServiceUnavailableException
503 Service Unavailable HTTP エラーステータスをカプセル化します。