SpringMVC异常处理之异常处理代码编写

it2025-08-26  1

SpringMVC异常处理之异常处理代码编写

1.编写自定义异常类的代码如下:

/** * 自定义异常类 * @author Adair */ @SuppressWarnings("all") // 注解警告信息 public class SysException extends Exception { private String message; // 存储提示信息的 // 构造方法 public SysException(String message) { this.message = message; } @Override public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } }

2.编写异常处理控制类的代码如下:

package com.txw.controller; import com.txw.exception.SysException; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; /** * 编写异常处理控制类 * @author Adair */ @Controller @RequestMapping("/user") @SuppressWarnings("all") // 注解警告信息 public class UserController { @RequestMapping("/testException") public String testException() throws SysException { System.out.println("testException执行了..."); try { // 通过try...catch捕获处理异常 // 模拟异常 int a = 10 / 0; } catch (Exception e) { // 打印异常信息 e.printStackTrace(); // 抛出自定义异常信息 throw new SysException("查询所有用户出现错误了..."); } return "success"; } }

3.编写异常处理器的代码如下:

package com.txw.exception; import org.springframework.web.servlet.HandlerExceptionResolver; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * 异常处理器 * @author Adair */ @SuppressWarnings("all") // 注解警告信息 public class SysExceptionResolver implements HandlerExceptionResolver { /** * 处理异常业务逻辑 * @param request * @param response * @param handler * @param ex * @return */ @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { // 获取到异常对象 SysException e = null; if(ex instanceof SysException){ e = (SysException)ex; }else{ e = new SysException("系统正在维护...."); } // 创建ModelAndView对象 ModelAndView mv = new ModelAndView(); mv.addObject("errorMsg",e.getMessage()); mv.setViewName("error"); return mv; } }

4.在springmvc.xml配置异常处理如图所示: 5.pages目录创建error.jsp的代码如下:

<%-- Created by IntelliJ IDEA. User: Adair Date: 2020/7/8 0008 Time: 9:28 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %> <html> <head> <title>错误页面</title> </head> <body> ${errorMsg} </body> </html>

6.使用Tomcat服务器运行结果如图所示:

7.通过浏览器访问http://localhost:8080/如图所示: 8.点击异常处理会跳转到如图所示的界面: 9.控制台打印结果如图所示:

最新回复(0)