📜  Spring MVC - 异常处理(1)

📅  最后修改于: 2023-12-03 14:47:33.647000             🧑  作者: Mango

Spring MVC - 异常处理

Spring MVC是一个基于MVC(Model-View-Controller)框架的Web应用程序框架。在Web开发中,异常处理是非常重要的一部分。Spring MVC提供了一种有效的方式来处理异常。

Spring MVC 异常处理方式

Spring MVC提供了两种方式来处理异常:

  1. 通过@ExceptionHandler方式处理异常
  2. 通过使用@ControllerAdvice处理全局异常
@ExceptionHandler方式处理异常

@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方式处理全局异常

@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应用程序中的异常。如果你需要在应用程序中捕获和处理异常,你可以使用其中的任何一种方式,根据你的需求来选择。