我正在尝试在具有肥皂端点和REST控制器的Spring Boot应用程序中处理异常。
捕获剩余控制器中发生的异常非常简单,我只是设置了一个带有@controllerAdvice的类,该类带有@ExceptionHandler方法,并且所有异常都被抓住了。但是,该控制器视觉看似似乎没有捕获肥皂端点中发生的异常。有没有办法捕获@controllerradvice类中端点上抛出的异常?如果没有,是否有其他方法集中在整个应用程序中进行异常处理,而与例外的地方无关?
非常感谢您。
我们可以创建自定义异常:
@ResponseStatus(HttpStatus.NOT_FOUND) public class StudentNotFoundException extends
RuntimeException {}
春季的例外处理程序:
@ControllerAdvice
@RestController
public class CustomizedResponseEntityExceptionHandler extends
ResponseEntityExceptionHandler {
@ExceptionHandler(StudentNotFoundException.class)
public final ResponseEntity<ErrorDetails>
handleUserNotFoundException(StudentNotFoundException ex, WebRequest request) {
ErrorDetails errorDetails = new ErrorDetails(new Date(), ex.getMessage(),
request.getDescription(false));
return new ResponseEntity<>(errorDetails, HttpStatus.NOT_FOUND);
}
public class ErrorDetails {
private Date timestamp;
private String message;
private String details;
public ErrorDetails(Date timestamp, String message, String details) {
super();
this.timestamp = timestamp;
this.message = message;
this.details = details;
}