Java开发手册(嵩山版) > 二、异常日志 > (二) 异常处理 (第30页)

不足1:

4. 【强制】捕获异常是为了处理它,不要捕获了却什么都不处理而抛弃之,如果不想处理它,请将该异常抛给它的调用者。最外层的业务使用者,必须处理异常,将其转化为用户可以理解的内容。

本条规约表述不够清晰。

什么是处理?
常见的处理方式有哪些?
什么是不想处理?

常见的异常处理方式有:
1.记录日志
2.尝试恢复
3.降级使用默认值
4.转换成上层异常类型
5.不处理、忽略
6.以上几种的组合

有些场景下不处理,什么都不做,连日志都不输出,也是一种处理方式。所以不能简单的认为不处理就是什么都没有决策。但为了避免与真的什么都不做区分开,建议加一句注释说明该异常忽略无需处理及原因。

不想处理容易让人感觉是开发者主观态度来决定,其实更加准确的表述是,当前上下文中缺乏足够的信息来决定如何处理该异常时,应把异常继续向上抛出,直到有足够的信息来决定如何处理异常。

不足2:

异常处理的规约,缺少一条一般情况下避免在单个catch块中使用Exception捕获全部异常,应使用多个catch块分别捕获具体的异常子类。

相关的规约:

8. 【强制】捕获异常与抛异常,必须是完全匹配,或者捕获异常是抛异常的父类。

9. 【强制】在调用 RPC、二方包、或动态生成类的相关方法时,捕捉异常必须使用 Throwable类来进行拦截。

但都未全完表述清楚上述的意思。

新手在处理异常时最容易写成在单个catch块中使用Exception捕获全部异常,且处理方式仅仅是打印输出异常信息,也就是俗称的吞掉了异常。

T31训练营 DAY7相关推荐

  1. 阿里云 ECS 云计算训练营 Day7:搭建个人网盘

    这是什么? 我正在参加"阿里云高校师生计划". 除了可以领取长达一年的免费云服务器体验, 在校学生还可以从零开始学习使用云计算,或参与 AI 实训营,最后获得礼品~(详情点我!) ...

  2. 写在孤尽T31训练营开班第一天

    在报这个班的时候,其实心里没底,我到底有没有时间完成这项挑战?但人都说,时间是挤出来的.所以,我想再使劲挤一挤. 在这里,我想立几个flag,等训练营结束的时候,看看自己完成了几个. 1. 提升系统架 ...

  3. 代码随想录训练营day7

    目录 题目一:四数相加|| 题目二:赎金信 题目三:三数之和 题目四:四数之和 总结: 题目一:四数相加|| 力扣题目链接 题目描述: 给你四个整数数组 nums1.nums2.nums3 和 num ...

  4. 代码随想录算法训练营day7| 454.四数相加II,383. 赎金信 ,15. 三数之和,18. 四数之和

    454.四数相加II 454. 四数相加 II 四个数在不同的数组里,不用考虑重复的问题 先计算2个数的和,并且统计和出现的次数,在用目标值减去后面两个数的和,用find查找是否存在减去后的数字. c ...

  5. Day7 零基础python入门100天Udemy训练营-Hangman Game 继续学习import, if else, while loop, for loop

    Udemy- python零基础入门100天训练营 1.Hangman Game 简介 在一个全是单词的list里随机选择一个单词,由玩家来猜字母,如果猜对了,那么填充上空格,如果猜错了,就掉一条命, ...

  6. 代码随想录算法训练营15期 Day7 | 454.四数相加II、 383. 赎金信 、15. 三数之和、18. 四数之和

    目录 力扣 454.四数相加II 题解:哈希表-map-unordered_map 力扣 383.赎金信 题解1:暴力解法 题解2:哈希表--数组 力扣 454.四数相加II 题目: 给你四个整数数组 ...

  7. 代码随想录算法训练营第七天| 哈希表理论基础 ,454.四数相加II, 383. 赎金信, 15. 三数之和, 18. 四数之和

    代码随想录算法训练营第七天| 哈希表理论基础 ,454.四数相加II, 383. 赎金信, 15. 三数之和, 18. 四数之和 454.四数相加II 建议:本题是 使用map 巧妙解决的问题,好好体 ...

  8. Day7 如何培养算法思维

    Day7 如何培养算法思维 经历描述 经验总结 追求目标 个人感触 算法目录 之前查到过一个比较好的算法学习方法总结,来自清华大学算法训练营 ,提出的"做中学" 方法,个人也是比较 ...

  9. 百度飞桨《青春有你2》七天训练营心得

    百度飞桨<青春有你2>七天训练营心得 .课程内容从Python入手,绝对0基础,由浅入深,让你建立系统的知识体系. .7日打卡营,采用全程直播+录播+答疑+比赛,四位一体全方位互动,时间短 ...

最新文章

  1. java maven compiler设置默认1.8
  2. 学习笔记(十九)——Python与数据库交互(mysql、redis)
  3. bpython bs4用哪个解释器好_针对python爬虫bs4(BeautifulSoup)库的基础问题
  4. matlab遗传算法m文件,matlab上安装遗传算法工具箱
  5. [PAT乙级]1023 组个最小数
  6. ​通俗理解神经网络BP反向传播算法
  7. 新闻发布项目——接口类(newsTbDao)
  8. koa mysql 按钮级权限_Vue 指令实现按钮级别权限管理功能
  9. TestNG安装及配置
  10. innodb_lru_scan_depth
  11. 机器学习cnn如何改变权值_五个机器学习悖论将改变您对数据的思考方式
  12. 云计算的未来:看「泛在计算」如何促进数字化生态和计算网络融合
  13. 自动生成企业画像(标签)
  14. 戴仁光:神奇的推广力量——软文
  15. 【数学建模】基于matlab武汉地铁2号线路线地图动态模拟【含Matlab源码 1092期】
  16. 《Redis学习三之面试》
  17. 对struct cred新理解
  18. 微信清理h5,小程序,公众号缓存
  19. 学习知识-你会学习吗?
  20. github大佬呕心沥血整理的2020年前端面试复习必读精选文章【赠复习导图】

热门文章

  1. 【Linux网络编程】TCP带外数据
  2. rust中文补丁steam_腐蚀rust游戏界面设置中文翻译图介文绍
  3. 智慧水利水务数字孪生应用,典型业务场景分享
  4. 红客闯关小游戏-黑吧安全网
  5. 隐私保护-联邦学习同态
  6. 在Spring中注册组件时报错:The fully qualified name of the bean's class, except if it serves only as a parent d
  7. 教招教资笔记整理(五)
  8. 【Peter Dayan】自然和人工强化学习的结合、以及未来的发展方向
  9. sa-token部分源码分析
  10. 容器编排compose部署