如何实现在Controller层捕获【自定义异常】,在业务层抛出异常消息。
时间: 2023-12-28 12:04:16 浏览: 41
在Controller层捕获自定义异常,可以使用Spring框架提供的 @ExceptionHandler 注解来实现,具体步骤如下:
1. 自定义异常类,例如 MyException 类:
```
public class MyException extends RuntimeException {
private String message;
public MyException(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
}
```
2. 在业务层中抛出该异常:
```
public class MyService {
public void doSomething() {
throw new MyException("发生了自定义异常");
}
}
```
3. 在Controller层中捕获该异常并返回异常信息:
```
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(MyException.class)
public Map<String, Object> handleMyException(MyException e) {
Map<String, Object> result = new HashMap<>();
result.put("code", HttpStatus.BAD_REQUEST.value());
result.put("message", e.getMessage());
return result;
}
}
```
在上面的代码中,@RestControllerAdvice 注解表示该类是全局异常处理器,@ExceptionHandler(MyException.class) 表示处理 MyException 类型的异常,handleMyException 方法用于处理异常并返回消息。
这样,在业务层抛出自定义异常后,Controller层就可以捕获该异常并返回异常信息。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)