Tôi muốn sử dụng cách chung để quản lý mã lỗi 5xx, hãy nói cụ thể trường hợp db bị lỗi trên toàn bộ ứng dụng mùa xuân của tôi. Tôi muốn một json lỗi khá lớn thay vì một dấu vết ngăn xếp.
Đối với các bộ điều khiển, tôi có một @ControllerAdvice
lớp cho các trường hợp ngoại lệ khác nhau và điều này cũng bắt được trường hợp db đang dừng ở giữa yêu cầu. Nhưng điều này không phải là tất cả. Tôi cũng tình cờ có một tùy chỉnh CorsFilter
mở rộng OncePerRequestFilter
và ở đó khi tôi gọi, doFilter
tôi nhận được CannotGetJdbcConnectionException
và nó sẽ không được quản lý bởi @ControllerAdvice
. Tôi đọc một số thứ trên mạng chỉ khiến tôi thêm bối rối.
Vì vậy, tôi có rất nhiều câu hỏi:
- Tôi có cần triển khai bộ lọc tùy chỉnh không? Tôi đã tìm thấy
ExceptionTranslationFilter
nhưng điều này chỉ xử lýAuthenticationException
hoặcAccessDeniedException
. - Tôi đã nghĩ đến việc thực hiện của riêng mình
HandlerExceptionResolver
, nhưng điều này khiến tôi nghi ngờ, tôi không có bất kỳ ngoại lệ tùy chỉnh nào để quản lý, phải có một cách rõ ràng hơn thế này. Tôi cũng đã cố gắng thêm thử / bắt và gọi một triển khai củaHandlerExceptionResolver
(phải đủ tốt, ngoại lệ của tôi không có gì đặc biệt) nhưng điều này không trả về bất kỳ thứ gì trong phản hồi, tôi nhận được trạng thái 200 và phần thân trống.
Có cách nào tốt để đối phó với điều này? Cảm ơn