异常处理体系是Java的优秀之处,而成功的异常处理应该实现下面4个目标:
(1)使程序代码混乱最小化;
(2)捕获并保留诊断信息;
(3)通知合适的人员;
(4)采用合适的方式结束异常活动。
为更好地实现上述效果,以下基本准则需要注意:
(1)不要过度使用异常。
过度使用异常的两个主要表现:
<1>把异常处理和普通错误混淆在一起,不再编写任何错误处理代码,而是以简单地抛出异常来代替所有的异常处理;
<2>使用异常处理来代替流程控制。
事实上,对完全已知的或者普通的错误应该编写处理错误的代码。只有对外部的、不能确定和预知的运行时错误才使用异常。
(2)不要使用过于庞大的try块。
try块复杂时分析异常的逻辑变得复杂。
应该把大块的try块分割成多个可能出现异常的程序段落,并把它们放在单独的try块中,从而分别捕获并处理异常。
(3)避免使用Catch All 语句。
Catch All 语句示例:

try {//可能引发Checked异常的代码
} catch (Throwable t) {//进行异常处理t.printStackTrace();
}

所谓的Catch All不过是通过避免异常处理而加快编程的进度,实际开发应该避免
(4)不要忽略捕获到的异常。
建议处理异常、重新抛出异常后者等到合适的层处理异常。
责任链模式是一个不错的设计模式,建议了解一下。

【Java】异常处理的注意事项相关推荐

  1. java异常处理试题答案_Java 面试题和答案 - (下)

    第一篇讨论了面向对象编程和它的特点,关于Java和它的功能的常见问题,Java的集合类,垃圾收集器,本章主要讨论异常处理,Java小应用程序,Swing,JDBC,远程方法调用(RMI),Servle ...

  2. Java提高篇——Java 异常处理

    异常的概念 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误java.lang.Error:如果你用Syst ...

  3. Java 异常处理学习总结

    Java 异常处理学习总结 -------------------------------------------------------------------------------------- ...

  4. 复习Java异常处理_异常分类_自定义异常_线程初步了解

    复习Java异常处理_异常分类_自定义异常_线程 主要内容 异常.线程 教学目标 第一章 异常 1.1 异常概念 异常,就是不正常的意思.在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点 ...

  5. 最全最详细的Java异常处理机制

    一.异常概述与异常体系结构 异常概述 在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的,比如:客户输入数据的格 ...

  6. Java入门学习注意事项有哪些?

    想要学好java技术,做好学习规划路线和注意事项是非常重要的,尤其是零基础学员,Java涉及到的知识点非常多,我们需要制定合理的Java学习路线图,这样会事半功倍,下面小编和大家总结一下Java入门学 ...

  7. Java异常处理12条军规

    摘要: 简单实用的建议. 原文:Java异常处理12条军规 公众号:Spring源码解析 Fundebug经授权转载,版权归原作者所有. 在Java语言中,异常从使用方式上可以分为两大类: Check ...

  8. Java 异常处理的 9 个最佳实践

    Java 异常处理的 9 个最佳实践 原文地址:https://dzone.com/articles/9-... 翻译出处:https://www.oschina.net/trans... 在 Jav ...

  9. 《转载》Java异常处理的10个最佳实践

    本文转载自 ImportNew - 挖坑的张师傅 异常处理在编写健壮的 Java 应用中扮演着非常重要的角色.异常处理并不是功能性需求,它需要优雅地处理任何错误情况,比如资源不可用.非法的输入.nul ...

  10. java异常处理之throw, throws,try和catch

    转自 http://blog.csdn.net/zhouyong80/article/details/1907799  程序运行过程中可能会出现异常情况,比如被0除.对负数计算平方根等,还有可能会出现 ...

最新文章

  1. C语言 数据类型(就做个笔记总结)
  2. 浅谈使用SQLBulkCopy批量数据入库
  3. IDEA 回滚SVN更新内容
  4. Reservoir Computing: Harnessing a Universal Dynamical System
  5. TTSR再次理解,主要是针对Texture Transformer TT的全部过程的一个梳理
  6. [软件工程学习笔记]浅谈敏捷开发
  7. 通过计算机名访问linux
  8. Django——日志
  9. python字符串前缀
  10. Matter-JS friction 摩擦力
  11. 3-QT程序运行时报错E:\SogouInput\6.7.0.0329\程序异常终止,该怎么解决?
  12. 显微镜C接口_激光共聚焦扫描显微镜搭建DIY
  13. ALFA深度学习外观检测自学习人工智能软件
  14. 开弓没有回头箭,遭遇跳槽四大后悔事件,怎么办?
  15. 牛客 | C 选择颜色
  16. Adobe国际认证设计师证书含金量怎么样?
  17. 【大数据科普系列之二】大数据运维工程师
  18. 魅族魅蓝新品15日发布 售价或超过千元?
  19. TeaTalk·Online 大数据+云原生,再度风云起
  20. 第一部文学理论和评论专著是谁的著作?全书分为几个部分?

热门文章

  1. 8.使用Exists监控ZNode的三大Change事件
  2. javascript Date类型 学习笔记
  3. uoj #118. 【UR #8】赴京赶考 水题
  4. 30岁菜鸟涛学习VB.net 第八天
  5. centos下离线安装mysql
  6. 运行第一个 docker image 并在浏览器中查看
  7. api商品分享源码_谈谈微服务中的 API 网关(API Gateway)
  8. json在线解析工具大集合
  9. java i线程安全吗_Java中 i++ 是线程安全的么?为什么?
  10. SQL 创建数据库、表以及索引