В моем приложении Spring Webflux у меня есть аннотированный класс @ControllerAdvice
, который реализует WebExceptionHandler
с его @Order
, установленным в -2, и я считаю, что он должен быть глобальным обработчиком исключений.
В этом классе я проверяю тип полученного Throwable
и обрабатываю его соответствующим образом, например:
@Component
@Slf4j
@Order(-2)
@ControllerAdvice
public class CustomWebExceptionHandler implements WebExceptionHandler {
@Override
public Mono<Void> handle(ServerWebExchange exchange, Throwable ex) {
if (ex instanceof ResponseStatusException) {
... do something
}
if (ex instanceof DomainException) {
... do something else
}
}
В одном из них "... сделать что-то"Я сделал ошибку, и был брошен IllegalArgumentException
.Я думал, что он будет обрабатываться этим же классом, но в конечном итоге он обрабатывается DefaultErrorWebExceptionHandler
, который имеет @Order(-1)
.
Мой вопрос: возможно ли вместо этого IllegalArgumentException
быть обработанным моим CustomWebExceptionHandler
?