Skip to main content

Change error message from Alurkerja Exception Handler

ยท 2 min read

Alurkerja sendiri sudah menghandle beberapa exception seperti AlurkerjaException, BadRequestException, dan lain-lain. Namun hal ini menjadikan masalah lain, yang mana jika ada project tertentu ingin menampilkan error yang berbeda dari yang Alurkerja define.

Pada versi minimum Alurkerja ini

  • CRUD : 3.0.0-20241218.035527-172
  • BPMN : 3.0.0-20241218.035527-178

Sudah ditambahkan untuk mengatasi hal ini, dengan cara membuat file messages.properties pada folder 'Resources' di project masing-masing.

Pada versi minimum ini, Alurkerja akan ambil message dari file messages.properties terlebih dahulu. Jika ada, maka akan di return dengan message yang di di declare pada file messages.properties.

variable yang diambil oleh Alurkerja untuk HandleException berikut

Exception ClassVariable messages.properties
MethodArgumentNotValidException.classmethodArgumentNotValidException
HttpMessageNotReadableException.classhttpMessageNotReadableException
ConstraintViolationException.classconstraintViolationException
MissingServletRequestParameterException.classmissingServletRequestParameterException
IllegalArgumentException.classillegalArgumentException
JDBCConnectionException.classjDBCConnectionException
SQLException.classsQLException

messages.properties ini tidak hanya untuk mengubah error message dari exception diatas saja. Namun, bisa dipakai juga untuk AlurKerjaException.class.

throw new AlurKerjaException(404, "kompetisi_spesifikasi_wilayah_tidak_ditemukan.label", id);

yang dimana kompetisi_spesifikasi_wilayah_tidak_ditemukan.label berbentuk seperti ini di messages.properties

kompetisi_spesifikasi_wilayah_tidak_ditemukan.label = Kompetisi spesifikasi wilayah dengan ID {0} tidak ditemukan.

Contoh untuk merubah error message handle exception 'HttpMessageNotReadableException'

@GetMapping("/test-ex")
public ResponseEntity<Object> testException() {
throw new HttpMessageNotReadableException("testException");
}
httpMessageNotReadableException = Error Baru

maka, ketika dicoba, didapatkan hasil berikut Picture 0


Pada sentry, error yang dikirim sesuai dengan yang seharusnya Picture 1