代码整洁之道第七章:错误处理

在代码开发过程中,由于大量的错误处理代码和正常的业务处理逻辑代码交杂在一起,导致代码凌乱不堪,逻辑不清,错误处理很重要,但是如果错误处理代码扰乱了代码逻辑,那这样本身就是错误的。本章主要讲述了如何雅致地处理错误代码的一些技巧和思路。

1.使用异常而非错误代码

以前,在处理错误时,要么设置一个错误标识,要么返回给调用者检查的错误码,但这会严重搞乱调用者代码,调用者必须在调用之后即可检查错误,但这个步骤很容易被遗忘,所以,遇到错误的时候,最好抛出一个异常,由上层代码捕获异常,统一处理,这样就可以很好的将错误处理代码和业务逻辑代码分离开来。

2.使用try-catch-finally语句

异常的妙处之一就是它们可以在程序中定义一个范围,在某种意义上,try代码块就像是事务,catch代码块将程序维持在一种持续状态,无论try代码块中发生什么错误,都可以通过catch来进行维护

3.使用不可控异常

相对于不可控异常,可控异常可以保证每个签名都列出它可能传递给调用者的异常,让调用者直观的就能知道所有可能出现的异常幷正对性的进行处理,但是可控异常违反了开闭原则,因为一旦一修改最底层的代码,抛出了新的异常,你就得在每个调用该函数的函数中修改,进行相应的异常捕获,这会严重破坏代码的封装性。

4.给出异常发生的环境说明

在抛出异常的地方,处理堆栈信息外,因为添加足够的环境说明,如类名,方法名或相关业务数据信息,以便判断错误的来源和处所,这样对于问题的排查会带来有很大的益处,如果有日志系统,应该在异常处记录足够准确丰富的错误信息。

5.不要返回null

一个方法返回null,会给上层代码增加严重的null处理负担,而且一旦遗漏对null的处理,就会导致难以排查的错误,所以尽量不要在方法中返回一个null。

6.不要传null

除非API要求你传null值进行业务流程区分,否则尽量不要往函数中传null参数,因为这很有可能导致被调用函数抛出难以排查的空指针异常

总结:

这章主要强调了使用异常对错误处理的好处,可以有效的将错误处理和业务逻辑分离,同时也指明了使用异常传递更加清晰的错误信息以及对空指针异常的预防。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值