BadRequestException
にメッセージを含めることは可能ですか?ユーザーが応答コード400を確認したときに、その理由を把握することもできますか?BadRequestExceptionにメッセージを含めるにはどうすればいいですか?
シナリオが簡略化され、このような何か、次のようになります。私は、これは代わりにResponse
オブジェクトを返す行うことができますが、私はそれを望んでいないだろう知っている
public Entity getEntityWithOptions(@PathParam("id") String id, @QueryParam("option") String optValue) {
if (optValue != null) {
// Option is an enum
try {
Option option = Option.valueOf(optValue);
} catch (IllegalArgumentException e) {
throw new BadRequestException(e.getMessage());
}
return new Entity(option);
}
return new Entity();
}
。
これは可能ですか?たぶんExceptionMapper<BadRequestException>
と? BadRequestException
はすでにジャージー特有の例外であるため、これを行うことはできませんか?
私は右、メッセージがコンストラクタに入れることができると思いますか?また、exceptionMapperが使用されている場合、実際にはResponseを返します。 – Cuero
メッセージをコンストラクタに渡していますが、レスポンスには含まれていません。 – dabadaba
exceptionMapperを使用すると、コンストラクターに渡されたメッセージが表示されます。このようにマッパーを作成するだけです:public Response toResponse(BadRequestException e){Response.status(Response.Status.BAD_REQUEST).type(MediaType.TEXT_PLAIN).entity(ExceptionUtils.getStackTrace(e))。build();} – Cuero