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 Class | Variable messages.properties |
|---|---|
| MethodArgumentNotValidException.class | methodArgumentNotValidException |
| HttpMessageNotReadableException.class | httpMessageNotReadableException |
| ConstraintViolationException.class | constraintViolationException |
| MissingServletRequestParameterException.class | missingServletRequestParameterException |
| IllegalArgumentException.class | illegalArgumentException |
| JDBCConnectionException.class | jDBCConnectionException |
| SQLException.class | sQLException |
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

Pada sentry, error yang dikirim sesuai dengan yang seharusnya
