Aplikasi web kami menggunakan a ExceptionMapper
untuk memetakan beberapa pengecualian Response
. Kami mencatat pesan pengecualian sebelum melemparkan pengecualian baru sebagai berikut:
catch (SomeException ex) {
LOG.error(ex.getMessage());
throw new MyException(ex.getMessage());
}
Kami tidak melempar kembali pengecualian yang sama , jadi pertanyaan saya adalah apakah ini akan dianggap sebagai antipattern Log dan Throw . Dan dengan demikian, akan lebih baik untuk menghapus logging di tempat yang sama dan memindahkannya ke beberapa ExceptionMapper
kelas sebagai berikut:
@Provider
public class MyExceptionMapper implements ExceptionMapper<MyException> {
// bla bla
@Override
public Response toResponse(final MyException ex) {
LOG.error(ex.getMessage());
return Response.status(400).entity("something").build();
}
}
ex.getMessage()
, itu sudah salah.