📅  最后修改于: 2023-12-03 14:47:33.647000             🧑  作者: Mango
Spring MVC是一个基于MVC(Model-View-Controller)框架的Web应用程序框架。在Web开发中,异常处理是非常重要的一部分。Spring MVC提供了一种有效的方式来处理异常。
Spring MVC提供了两种方式来处理异常:
@ExceptionHandler
方式处理异常@ControllerAdvice
处理全局异常@ExceptionHandler
注解可以用来处理Controller中抛出的某个异常,例如:
@Controller
public class DemoController {
@ExceptionHandler(Exception.class)
public ModelAndView handleException(Exception ex) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("error");
modelAndView.addObject("message", ex.getMessage());
return modelAndView;
}
}
上面的代码中,@ExceptionHandler
注解在handleException
方法上,当Controller中抛出Exception
类的异常时,该方法会被调用。
@ControllerAdvice
是一个Controller增强器,可以将@ExceptionHandler
、@InitBinder
和@ModelAttribute
方法都放在一个类中,并作用于所有的@RequetMapping注解的方法上。例如:
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ModelAndView handleException(Exception ex) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("error");
modelAndView.addObject("message", ex.getMessage());
return modelAndView;
}
}
上面的代码中,@ControllerAdvice
注解在GlobalExceptionHandler
类上,当任何Controller中抛出Exception
类的异常时,handleException
方法会被调用。
通过上述两种方式,你可以轻松地处理Spring MVC应用程序中的异常。如果你需要在应用程序中捕获和处理异常,你可以使用其中的任何一种方式,根据你的需求来选择。