博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
异常处理的一些思考
阅读量:6939 次
发布时间:2019-06-27

本文共 598 字,大约阅读时间需要 1 分钟。

hot3.png

假设有一个业务 serviceA,一个 通用的 方法 commonService

function serviceA(){     

     obj = commonService(); # 内部报异常,捕获异常后 返回默认值,此处为null
    ....
     heavyFunction()  # 可能的慢速调用
    ....
    otherService.doSomthing(obj)  # 函数体内调用 obj的方法,属性将导致空指针异常
}
commonService 内部捕获异常的坏处
1. 代码编程原则是尽早暴露错误,这样当程序异常时可以找到异常的原始原因。
   将异常点延迟到 otherService.doSomthing 函数内部,这样程序异常终止时,在 "异常点" 将查不到 root cause,因为此处   异常是空指针异常,commonService内部代码造成的异常将无法查看了
2. 异常延后的后果是本该结束的程序,又多执行了一些时间,如果后面有慢速调用,则大大增加了程序执行时间
3. commonService 异常时返回默认值或默认处理,在当前的业务 serviceA中可能此默认处理是正确的,而其他业务serviceB,serviceC
   可能有不同的处理,这样 commonService的通用性就削弱了。

转载于:https://my.oschina.net/rock117/blog/510860

你可能感兴趣的文章
awk工具
查看>>
mysql 常用日期处理函数
查看>>
使用python进行数据的采集 编辑 删除
查看>>
布尔类型及return 严重程度
查看>>
解决springboot程序员的一点小困惑,nginx的反向代理
查看>>
Java虚拟机基本结构的简单记忆
查看>>
hibernate查询返回结果值为实体时接收方法
查看>>
七牛云 ssl免费证书申请
查看>>
基于结构化平均感知机的分词器Java实现
查看>>
比较好的中文分词方案汇总推荐
查看>>
Chrome本地安装Metamask
查看>>
Tomcat介绍 (资源 )
查看>>
【2018.06.28学习笔记】【linux高级知识 17.1-17.5】
查看>>
IPFS是什么?
查看>>
2.配置IP与网络问题排查
查看>>
机器学习:从入门到晋级
查看>>
JPA的工具类
查看>>
Java 多线程编程核心技术 笔记
查看>>
ComponentOne 2019V1更新亮点之ASP.NET MVC篇
查看>>
Java程序员应该掌握哪些东西?
查看>>