• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > java 使用异常的好处总结

java 使用异常的好处总结

作者:彭呈祥 字体:[增加 减小] 来源:互联网 时间:2017-05-28

彭呈祥 通过本文主要向大家介绍了java使用接口的好处,java使用框架的好处,java使用常量的好处,java中使用接口的好处,使用java的好处等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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> 
</div>

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

  三、建议 

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

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

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • java 使用异常的好处总结
  • java 使用异常的好处总结

相关文章

  • 2017-07-22Java虚拟机(三)垃圾标记算法与Java对象的生命周期
  • 2017-05-28java 动态增加定时任务示例
  • 2017-05-28详解Spring MVC自动为对象注入枚举类型
  • 2017-05-28Java中ArrayList的工作原理详解
  • 2017-05-28Java数据结构之链表(动力节点之Java学院整理)
  • 2017-05-28spring boot拦截器实现IP黑名单实例代码
  • 2017-05-28Java中IO流简介_动力节点Java学院整理
  • 2017-05-28java使用Filter实现自动登录的方法
  • 2017-05-28java模拟微信抢红包的实例代码
  • 2017-05-28Java使用NioSocket手动实现HTTP服务器

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • java 中Thread.join()的使用方法
    • 详解用Spring Boot零配置快速创建web项目
    • 详解Spring Boot 自定义PropertySourceLoader
    • java服务端微信APP支付接口详解
    • Java Annotation详解及实例代码
    • SpringBoot集成mybatis实例
    • Java中IO流详解
    • Spring Boot启动过程(四)之Spring Boot内嵌Tomcat启动
    • Java枚举类型enum的详解及使用
    • Java通过wait()和notifyAll()方法实现线程间通信

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有