【发布时间】:2020-09-28 15:58:53
【问题描述】:
我正在做一个项目,该项目实现了一个像这样的通用异常处理程序:
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
@Slf4j
@RestControllerAdvice
public class CommonExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity<Object> handleException(final Exception e) {
log.error(e.getMessage(), e);
return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
}
}
现在我想使用不受此异常处理影响的休息模板,但无论我尝试什么,所有异常都由公共处理程序处理。 知道如何使用带有覆盖上述错误处理程序的自定义错误处理程序的休息模板吗?
无法修改通用异常处理程序,所以我必须想办法解决它。
【问题讨论】:
-
在您的
@RestControllerAdvice中使用@ExceptionHandler(Exception.class)可作为引发所有 异常的包罗万象。我想您要么必须在建议中处理更具体的异常,要么根本不使用@RestControllerAdvice -
“我想使用不受此异常处理影响的休息模板”是什么意思?
RestTemplate完全不受这些建议的影响。您的意思是使用RestTemplate引起的异常最终会由该建议处理吗?
标签: spring spring-boot resttemplate