田中ブログ

さいたまに住んでいる男です。仕事はSESでプログラムを書いてることが多いです。聖地巡礼、日々の生活、技術的なことを書いていこうと思います。

RestTemplateのHttpServerErrorExceptionやHttpClientErrorExceptionをthrowする

RestTemplateのHttpServerErrorExceptionやHttpClientErrorExceptionをthrowする方法を備忘も兼ねて書きます。

発端としては、JUnitにて、ExceptionHandlerで上記が発生したときのテストコードを書こうとしたときに、newしてthrowしてもハンドリング処理が動かなかったためです。

対応策

HttpServerErrorExceptionクラスを眺めていたのですが、ネストされたクラスとして、HttpServerErrorException.InternalServerError などがあるようでした。

これらのネストされたクラスの例外を作成して、throwすることで無事ハンドリング処理が動きました。

作成方法ですが、以下のcreateメソッドをコールして作成します。

HttpServerErrorException.create(...)

とりあえずのJUnitなので引数の値は適当な値を入れましたが、無事期待通りにthrowできました。HttpClientErrorExceptionも同様にcreateメソッドがあるのでそちらで作成できました。

以上