博客
关于我
SpringMVC处理异常
阅读量:556 次
发布时间:2019-03-09

本文共 1254 字,大约阅读时间需要 4 分钟。

Spring 提供了多种方式将异常转换为响应,这些机制可以帮助开发者更好地管理应用程序的错误处理流程。以下是一些关键信息:

  • 特定的Spring异常将会自动映射为指定的HTTP状态码:Spring内部有很多特定的异常类,这些异常会被自动映射到相应的HTTP状态码中。例如,当DispatcherServlet无法找到处理请求的方法时,会抛出NoSuchRequestHandlingMethodException异常,最终生成404状态码(Not Found)。

  • 使用@ResponseStatus注解将异常映射为特定状态码:通过在异常类上使用@ResponseStatus注解,可以指定要映射到的具体HTTP状态码。例如,SpittleNotFound-Exception异常可以被映射到404状态码。

  • 在控制器方法上使用@ExceptionHandler注解处理异常:@ExceptionHandler注解可以用来在控制器方法中定义处理特定异常的逻辑。这样的方法可以接收任何异常类型,并根据需要返回处理结果。

  • 使用@controllerAdvice来集中管理异常处理:通过定义一个带有@controllerAdvice注解的类,可以集中管理应用程序中所有控制器方法抛出的异常。这种方式有助于减少重复代码,并统一处理异常。

  • 以下是如何在Spring应用中配置这些机制的具体步骤:

    • 创建一个新的异常处理类,例如''
      @ControllerAdvicepublic class ZzfExceptionHandler {    public static final String IMOOC_ERROR_VIEW = "error";    @ExceptionHandler(value = Exception.class)    public ModelAndView errorHandler(HttpServletRequest request, HttpServletResponse response, Exception e) throws Exception {        e.printStackTrace();        ModelAndView mav = new ModelAndView();        mav.addObject("exception", e);        mav.addObject("url", request.getRequestURL());        mav.setViewName(IMOOC_ERROR_VIEW);        return mav;    }}

      这个类会处理所有控制器抛出的异常,将其转换为视图响应,并跳转到templates/error.html

    这样,不管应用程序中哪个控制器方法抛出异常,都可以通过这个统一的异常处理逻辑来处理。这个方法确保了错误信息的一致性和可追踪性,同时也使代码更加简洁和易于维护。

    转载地址:http://ommsz.baihongyu.com/

    你可能感兴趣的文章
    POP3 协议在计算机网络中的优缺点
    查看>>
    qt批量操作同类型控件
    查看>>
    Portaudio笔记-WASAPI
    查看>>
    position:fixed失效情况
    查看>>
    Qt开发笔记:QGLWidget、QOpenGLWidget详解及区别
    查看>>
    Position属性四个值:static、fixed、absolute和relative的区别和用法
    查看>>
    POSIX thread编程中关于临界区内条件变量的分析
    查看>>
    POSIX与程序可移植性
    查看>>
    posix多线程有感--自旋锁
    查看>>
    SpringBoot中集成海康威视SDK实现布防报警数据上传/交通违章图片上传并在linux上部署(附示例代码资源)
    查看>>
    POSIX标准和XSI扩展
    查看>>
    post install error,please remove node_moules before retry
    查看>>
    postcss-pxtorem 参数之selectorBlackList、exclude的用法
    查看>>
    Postek博思得标签打印机更换电脑,打印出来标签空白
    查看>>
    postfix+ dovecot搭建邮件服务器
    查看>>
    postfix在邮件服务器中的使用
    查看>>
    PostGIS 3.1.2软件安装详细教程(地图工具篇.8)
    查看>>
    PostGIS中获取所有EPSG的编码以及对应Proj4字符串
    查看>>
    SpringBoot中集成海康威视SDK实现布防报警数据上传/交通违章图片上传并在linux上部署(附示例代码资源)
    查看>>
    PostGIS在Windows上的下载与安装
    查看>>