/** * java.lang.ArithmeticException 异常处理器 * <p> * 需求: * 1.捕捉该 Controller 类下的所有算术异常 * 2.跳转 error1.html 页面 */
时间: 2024-11-11 11:11:25 浏览: 7
在Java中,`java.lang.ArithmeticException`通常发生在执行数学运算时遇到无效的操作,如除以零、取幂时的负数指数等。为了处理这个特定类型的异常,并在Controller类下所有可能会抛出此类异常的地方提供统一的错误处理,你可以创建一个异常处理器来捕获并处理它。以下是一个简单的例子:
```java
@ControllerAdvice
public class ArithmeticExceptionHandler {
@ResponseBody
@ExceptionHandler(value = ArithmeticException.class)
public Map<String, Object> handleArithmeticException(ArithmeticException e) {
// 将异常信息记录到日志文件或系统中
log.error("Caught arithmetic exception: {}", e.getMessage());
// 创建一个包含错误信息的对象,用于返回给前端
Map<String, Object> response = new HashMap<>();
response.put("error", "发生了一次算术异常");
response.put("statusCode", HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
response.put("redirect", "/error1.html"); // 跳转到error1.html页面
return response;
}
}
```
在这个示例中,`@ControllerAdvice`注解使得这个类成为一个全局异常处理器,`@ExceptionHandler`用于捕获指定类型的异常。当`ArithmeticException`被捕获时,会返回一个JSON对象,告知客户端发生了错误并将其重定向到`error1.html`。
阅读全文