spring boot自定义异常
时间: 2023-08-26 08:06:59 浏览: 88
在 Spring Boot 中,我们可以通过自定义异常来捕获和处理应用程序中的异常情况。下面是一个简单的自定义异常的示例:
```java
public class CustomException extends RuntimeException {
private HttpStatus status;
private String message;
public CustomException(HttpStatus status, String message) {
this.status = status;
this.message = message;
}
public HttpStatus getStatus() {
return status;
}
public String getMessage() {
return message;
}
}
```
在上面的例子中,我们定义了一个 `CustomException` 类,它继承自 `RuntimeException`,并包含了两个成员变量 `status` 和 `message`。
接下来,我们可以在我们的控制器中使用这个自定义异常类:
```java
@RestController
public class MyController {
@GetMapping("/hello")
public String hello() {
throw new CustomException(HttpStatus.INTERNAL_SERVER_ERROR, "Something went wrong");
}
@ExceptionHandler(CustomException.class)
public ResponseEntity<ErrorResponse> handleException(CustomException ex) {
ErrorResponse error = new ErrorResponse(ex.getStatus(), ex.getMessage());
return new ResponseEntity<>(error, ex.getStatus());
}
}
```
在上面的例子中,我们在 `hello()` 方法中抛出了 `CustomException` 异常。然后,我们使用 `@ExceptionHandler` 注释来处理 `CustomException` 异常,并返回一个 `ResponseEntity` 对象。在这个 `ResponseEntity` 对象中,我们可以设置错误消息和 HTTP 状态码。
这样,当我们在浏览器中访问 `/hello` 路由时,我们将得到一个包含自定义错误信息的 HTTP 响应。
阅读全文