java 使用异常的好处总结

作者:彭呈祥 时间:2023-11-29 13:35:49 

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代表块)更加清晰。使用异常有很多优点,比如可让正常代码和异常代码分离,能快速查找问题(栈信息快照)等,但是异常有一个缺点:性能比较慢。
但是我们不能因为性能问题而放弃使用异常,难道我们的系统连如此微小的性能消耗都不允许吗?

  三、建议 

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

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

来源:http://blog.csdn.net/p106786860/article/details/12119117

标签:java,异常
0
投稿

猜你喜欢

  • 使用RecyclerView实现水平列表

    2022-04-25 19:27:13
  • Android图片实现压缩处理的实例代码

    2022-05-28 20:29:12
  • 详解Java豆瓣电影爬虫——小爬虫成长记(附源码)

    2023-10-29 17:45:17
  • java阶乘计算获得结果末尾0的个数代码实现

    2022-11-30 00:01:02
  • 解决Android Studio 3.0 butterknife:7.0.1配置的问题

    2021-08-20 09:23:05
  • 实例讲解Android多线程应用开发中Handler的使用

    2021-11-23 03:23:13
  • Eclipse下基于Java的OpenCV开发环境配置教程

    2022-01-30 21:02:54
  • Android编程实现ActionBar的home图标动画切换效果

    2021-11-21 11:34:11
  • jvm虚拟机类加载机制详解

    2021-10-21 08:33:28
  • Kotlin协程低级api startCoroutine与ContinuationInterceptor

    2022-05-04 21:45:50
  • Java利用TreeUtils工具类实现列表转树

    2021-10-02 03:28:00
  • 高并发下restTemplate的错误分析方式

    2023-08-23 12:58:24
  • Java类和成员上的一些方法实例代码

    2022-03-15 10:47:31
  • 详解Android获取设备唯一ID的几种方式

    2022-07-15 12:33:41
  • flutter中的布局和响应式app方法示例

    2023-02-19 19:14:52
  • C#获取Windows进程监听的TCP/UDP端口实例

    2021-11-20 13:06:21
  • Android TabLayout(选项卡布局)简单用法实例分析

    2023-12-17 09:52:28
  • Java使用poi操作excel实例解析

    2022-01-26 00:15:41
  • 完美解决虚拟按键遮盖底部视图的问题

    2021-11-24 23:48:25
  • 深入理解Android MD5数据加密

    2022-03-16 07:48:03
  • asp之家 软件编程 m.aspxhome.com