码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • [SpringMVC笔记] SpringMVC-14-SSM整合-异常处理器


    SpringMVC-14-SSM整合-异常处理器

    1. 异常要按不同种类分别处理
    2. 数据层,业务层,表现层都有可能出现异常,将异常全部抛至表现层做处理
    3. 用 AOP 思想分类处理不同的异常

    SpringMVC 中提供了异常处理器,可以集中统一处理项目中的异常,如下例:

    // @ControllerAdvice
    // @ResponseBody
    // 注解上面的两个或者下面的一个
    @RestControllerAdvice
    public class ProjectExceptionAdvice {
        // 注解内指定要捕获的异常类,此处捕获了所有的异常
        @ExceptionHandler(Exception.class)
        public Result doException(Exception exception) {   // 要处理的异常作为参数传入
            System.out.println("出现异常!");
            exception.printStackTrace();
            return new Result(-1, null, "哎呀,出错了...");   // 出现异常也要返回数据给前端
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    对几个注解的补充说明:

    • @ControllerAdvice 表明这是一个表现层通知(这个类需要被 SpringMVC 的配置类扫描到)
    • @ResponseBody 表明其返回值会传给前端(将返回值转换为 json 数据)
    • @RestControllerAdvice 用于取代上面两个注解
    • @ExceptionHandler 表明所需要处理的异常类型,注解在方法上

    再补充:异常处理器会按照精确性优先的规则捕获异常,例如同时有捕获 Exception.class 和捕获 RuntimeException.class 的两个处理方法,此时项目出现了 RuntimeException 异常,那么此异常不会被当作 Exception 捕获,而是更精确的作为 RuntimeException 被捕获并处理

    此外,如果有两个处理方法捕获同一个异常类(@ExceptionHandler 注解中的内容相同),那么出现此种异常时会出错,异常无法被处理

  • 相关阅读:
    基于AI智能分析网关的智慧视频监控系统一站式解决方案
    简化开发流程,消除重复任务:refine 帮您轻松搞定 | 开源日报 No.63
    数据标注的终点会是众包么?(AI数据标注猿交流社区群欢迎加入)
    Autosar工具-Davinci Developer
    【★★★★★ 树与二叉树总结笔记 2022 9.5】
    BWO白鲸优化算法
    Node如何获取pnpm安装的包源码真实代码路径并操作
    uniapp 部署h5,pdf预览
    linux并发服务器 —— 项目实战(九)
    基于单片机的视觉导航小车设计
  • 原文地址:https://blog.csdn.net/Cey_Tao/article/details/126453944
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号