0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Java中异常处理原则总结

汽车玩家 来源:今日头条 作者:咔咔侃技术 2020-04-15 17:32 次阅读

见过很多人在进行异常处理的时候,直接一个 e.printStackTrace() 就完成了,这是一种非常粗陋的做法,首先会导致应用日志的大量错误信息,而很多时候你都不知道这些错误信息因何发生;再者,反应到用户端将直接导致用户无法获取操作的结果以及失败的原因。

以下 15 条异常处理的原则来自国外的博客:

不用使用异常来管理业务逻辑,应该使用条件语句。如果一个控制逻辑可通过 if-else 语句来简单完成的,那就不用使用异常,因为异常会降低代码的可读性和性能,例如一些 null 的判断逻辑、除0的控制等等;

异常的名字必须清晰而且有具体的意思,表示异常发生的问题,例如 FileNotFoundException 就很清晰直观

当方法判断出错该返回时应该抛出异常,而不是返回一些错误值,因为错误值难以理解而且不够直观,例如抛出 FileNotFoundException 异常,而不是返回 -1 或者 -2 之类的错误值。

应该捕获指定的异常,而不是 catch(Exception e) 了事,这对性能、代码的可读性以及诸多方面都有好处

Null 的判断逻辑并不是一成不变的,当方法允许返回 null 的时候使用 if-else 控制逻辑,否则就抛出 NullPointerException

尽量不要二次抛出异常,如果非得这么做的话,抛出同一个异常示例,而不是重新构建一个异常对象,这对性能是有帮助的,而且外层调用者可获取真实的异常信息

定义你自己的异常类层次,例如 UserException 和 SystemException 分别代表用户级别的异常信息和系统级别的异常信息,而其他的异常在这两个基类上进行扩展

明确的使用不同的异常类型:

Fatal: System crash states.

Error: Lack of requirement.

Warn: Not an error but error probability.

Info: Info for user.

Debug: Info for developer.

不要仅仅捕获异常而不做任何处理,不便于将来维护

不要多次重复记录同一个异常,这可以让我们清晰的了解异常发生的位置

请使用 finally 来释放一些打开的资源,例如打开的文件、数据库连接等等

大部分情况下不建议在循环中进行异常处理,应该在循环外对异常进行捕获处理

异常的粒度很重要,应该为一个基本操作定义一个 try-catch 块,不要为了简便,将几百行代码放到一个 try-catch 块中

为你的异常生成足够的文档说明,至少是 JavaDoc

为每个异常消息定义一个数值,这对好的文档来说是非常重要的。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • JAVA
    +关注

    关注

    19

    文章

    2904

    浏览量

    102996
收藏 人收藏

    评论

    相关推荐

    Java的常用异常处理方法 java推荐

    Java异常情况分为Exception(异常)和Error(错误)两大类,Java异常通常
    发表于 01-19 17:26

    Java捕获异常处理的常用方法

    Java异常情况分为Exception(异常)和Error(错误)两大类,Java异常通常
    发表于 11-27 11:40

    Java异常体系级处理办法

      一、异常简介  优秀的程序代码,都在追求高效,安全,和低错误率,但是程序异常是无法避免的,降低异常出现的频率是关键,异常出现如何
    发表于 01-05 17:48

    Java异常处理及其应用

    Java异常处理引出 假设您要编写一个 Java 程序,该程序读入用户输入的一行文本,并在终端显示该文本。 程序如下: 1 import ja
    发表于 11-09 12:03 15次下载

    Java中包、接口与异常处理(exception) 实验

    实验 4 包、接口与异常处理(exception) 一、实验目的     了解 Java 中包(package)、接口(interface)和异常
    发表于 09-23 19:00 1108次阅读

    Java异常处理之try,catch,finally,throw,throws

    完毕后,程序继续运行。 java异常处理是通过5个关键字来实现的:try、catch、finally、throw、throws。 二:java异常
    发表于 09-27 11:17 0次下载
    <b class='flag-5'>Java</b><b class='flag-5'>异常</b><b class='flag-5'>处理</b>之try,catch,finally,throw,throws

    java异常处理的设计与重构

    寻找出错的根源?但是如果一个项目异常处理设计地过多,又会严重影响到代码质量以及程序的性能。因此,如何高效简洁地设计异常处理是一门艺术,本文下面先讲述
    发表于 09-27 15:40 1次下载
    <b class='flag-5'>java</b><b class='flag-5'>异常</b><b class='flag-5'>处理</b>的设计与重构

    java异常处理设计和一些建议

    出错从哪里寻找出错的根源?但是如果一个项目异常处理设计地过多,又会严重影响到代码质量以及程序的性能。因此,如何高效简洁地设计异常处理是一门艺术,本文下面先讲述
    发表于 09-28 11:48 0次下载
    <b class='flag-5'>java</b><b class='flag-5'>异常</b><b class='flag-5'>处理</b>设计和一些建议

    Java异常选择和使用的误区和经验总结

    本文着重介绍了 Java 异常选择和使用中的一些误区,希望各位读者能够熟练掌握异常处理的一些注意点和原则,注意
    发表于 11-27 08:54 1252次阅读
    <b class='flag-5'>Java</b><b class='flag-5'>异常</b>选择和使用的误区和经验<b class='flag-5'>总结</b>

    处理 Java 异常原则的详细分析

    Java异常提供了一种识别及响应错误情况的一致性机制,有效地异常处理能使程序更加健壮、易于调试。
    的头像 发表于 12-25 11:09 3507次阅读
    对<b class='flag-5'>处理</b> <b class='flag-5'>Java</b> <b class='flag-5'>异常</b>三<b class='flag-5'>原则</b>的详细分析

    java教程之如何进行Java异常处理

    本文档的主要内容详细介绍的是java教程之如何进行Java异常处理
    发表于 09-28 17:16 0次下载

    Java教程之零点起飞学Java异常处理资料说明

    Java语言提供了异常机制来处理程序运行过程中可能发生的各种非正常事件。通过异常处理机制,大大提高了程序的健壮性。
    发表于 02-20 10:41 11次下载
    <b class='flag-5'>Java</b>教程之零点起飞学<b class='flag-5'>Java</b>的<b class='flag-5'>异常</b><b class='flag-5'>处理</b>资料说明

    10个Java编程中异常处理最佳实践

    这里是我收集的10个Java编程中进行异常处理的10最佳实践。在Java编程中对于检查异常有褒有贬,强制
    的头像 发表于 05-03 17:49 1758次阅读

    Java高级编程之异常处理

    对于我们所开发的程序而言,错误是无法避免的。本文阐述了如何运用java异常处理机制为我们控制和处理异常的出现,从而保证程序的安全性和可用性
    发表于 07-08 16:14 19次下载
    <b class='flag-5'>Java</b>高级编程之<b class='flag-5'>异常</b><b class='flag-5'>处理</b>

    Java怎么排查oom异常

    Java中的OOM(Out of Memory)异常是指当Java虚拟机的堆内存不足以容纳新的对象时抛出的异常。OOM异常是一种常见的运行时
    的头像 发表于 12-05 13:47 469次阅读