java 使用异常的好处总结

 更新时间:2017年03月01日 17:09:36   作者:彭呈祥  
这篇文章主要介绍了java 使用异常的好处总结的相关资料,需要的朋友可以参考下

java 使用异常的好处总结

一、分析

Java异常处理机制确实比较慢,这个“比较慢”是相对于诸如String、Integer等对象来说,单单从对象的创建上来说,new一个IOException会比String慢5倍,这从异常的处理机制上也可以解释:因为它执行fillStackTrace方法,要记录当前栈的快照,而String类则是直接申请创建一个内存创建对象,异常类慢一筹也在所难免。   

 二、场景

我们知道异常是主逻辑的例外逻辑,举个例子来说,比如我们能在马路上走(这时主逻辑),突然开过一辆车,我要避让(这是受检异常,必须处理),继续走着,不然一架飞机从我头顶飞过(非受检异常),我们可以选择继续行走(不捕捉),也可以选择指责噪音污染(捕捉,主逻辑的补充处理),在继续走着,突然一颗流星砸下来,这就没有选择,属于错误,不能做任何处理。

任何一个事物的处理都可能产生非预期的结果,问题是需要以何种手段来处理,如果不使用异常就需要依靠返回值的不同来进行处理了,这严重严重失去了面向对象的风格。

例如,用户登录的用例,就会在”例外事件“中说明”连续3次登陆失败即锁定用户账号“,这就是登陆事件的一个异常处理,具体到我们的程序中就是:

<span style="font-family:SimSun;font-size:14px;">   public voidlogin(){ 
     try{ 
       //正常登陆 
     }catch(InvalidLoginExceptionlie){ 
       //用户名无效 
     }catch(InvalidPasswordExceptionpe){ 
       //密码错误的异常 
     }catch(TooMouchLoginExceptiontmle){ 
       //多次登陆失败的异常 
     }     
   }</span> 

如此设计则可以让我们的login方法更符合实际的处理逻辑,同时使主逻辑(正常登陆,try代表块)更加清晰。使用异常有很多优点,比如可让正常代码和异常代码分离,能快速查找问题(栈信息快照)等,但是异常有一个缺点:性能比较慢。
但是我们不能因为性能问题而放弃使用异常,难道我们的系统连如此微小的性能消耗都不允许吗?

  三、建议 

        性能问题不是拒绝异常的借口

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • Eclipse git推送上传错误问题解决方案

    Eclipse git推送上传错误问题解决方案

    这篇文章主要介绍了Eclipse git推送上传错误问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Java 链表的定义与简单实例

    Java 链表的定义与简单实例

    这篇文章主要介绍了 Java 链表的定义与简单实例的相关资料,需要的朋友可以参考下
    2017-06-06
  • Java8 Instant时间戳使用小记

    Java8 Instant时间戳使用小记

    这篇文章主要给大家介绍了关于Java8 Instant时间戳使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • springboot中使用雪花算法生成雪花ID

    springboot中使用雪花算法生成雪花ID

    本文主要介绍了springboot中使用雪花算法生成雪花ID,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Java多个版本切换的几种方法

    Java多个版本切换的几种方法

    本文主要介绍了Java多个版本切换的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Java实现链栈的示例代码

    Java实现链栈的示例代码

    这篇文章主要为大家详细介绍了如何使用链式存储结构来实现栈,也就是链栈的实现,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-11-11
  • java图的深度优先遍历实现随机生成迷宫

    java图的深度优先遍历实现随机生成迷宫

    这篇文章主要为大家详细介绍了java图的深度优先遍历实现随机生成迷宫,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • springboot入门之profile设置方式

    springboot入门之profile设置方式

    这篇文章主要介绍了springboot入门 profile设置方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • springboot使用nacos的示例详解

    springboot使用nacos的示例详解

    这篇文章主要介绍了springboot使用nacos的示例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • Spring Boot 2.4配置特定环境时spring: profiles提示被弃用的原因分析

    Spring Boot 2.4配置特定环境时spring: profiles提示被弃用的原

    这篇文章主要介绍了Spring Boot 2.4配置特定环境时spring: profiles提示被弃用的原因,本文给大家分享详细解决方案,需要的朋友可以参考下
    2023-04-04

最新评论