在 Spring MVC 中,您可以自定义异常处理器来处理应用程序中的异常。\n\n首先,需要创建一个类来处理异常,该类需要实现 HandlerExceptionResolver 接口。在该类中,可以实现 resolveException 方法来处理异常。在该方法中,可以根据不同的异常类型来执行不同的处理逻辑,例如返回特定的错误页面或者返回特定的错误信息。\n\njava\npublic class CustomExceptionHandler implements HandlerExceptionResolver {\n\n @Override\n public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {\n ModelAndView modelAndView = new ModelAndView();\n \n if (ex instanceof CustomException) {\n // 处理自定义异常\n CustomException customException = (CustomException) ex;\n modelAndView.addObject("errorCode", customException.getErrorCode());\n modelAndView.addObject("errorMessage", customException.getErrorMessage());\n modelAndView.setViewName("error");\n } else {\n // 处理其他异常\n modelAndView.addObject("errorCode", "500");\n modelAndView.addObject("errorMessage", "Internal Server Error");\n modelAndView.setViewName("error");\n }\n \n return modelAndView;\n }\n}\n\n\n接下来,在 Spring MVC 的配置文件中,需要配置自定义异常处理器。可以使用 SimpleMappingExceptionResolver 类来配置异常处理器,并指定要处理的异常类型和要返回的错误页面。\n\nxml\n<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">\n <property name="exceptionMappings">\n <props>\n <prop key="com.example.CustomException">error</prop>\n </props>\n </property>\n</bean>\n\n\n在上述配置中,如果发生 CustomException 异常,将会返回名为 "error" 的视图。\n\n另外,还可以在 @ControllerAdvice 注解的类中使用 @ExceptionHandler 注解来处理特定类型的异常。例如:\n\njava\n@ControllerAdvice\npublic class GlobalExceptionHandler {\n\n @ExceptionHandler(CustomException.class)\n public ModelAndView handleCustomException(CustomException ex) {\n ModelAndView modelAndView = new ModelAndView();\n modelAndView.addObject("errorCode", ex.getErrorCode());\n modelAndView.addObject("errorMessage", ex.getErrorMessage());\n modelAndView.setViewName("error");\n return modelAndView;\n }\n}\n\n\n在上述代码中,如果发生 CustomException 异常,将会返回名为 "error" 的视图。\n\n通过自定义异常处理器,可以更好地处理应用程序中的异常,并返回合适的错误页面或错误信息。

Spring MVC 自定义异常处理:完整指南及代码示例

原文地址: https://www.cveoy.top/t/topic/qlbx 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录