《代码整洁之道》读书笔记----第七章错误处理

一、try-catch-finally诞生的原因
错误处理的原则:不应该混乱原本代码的逻辑,错误处理不应该杂糅在业务代码中。
原本的错误处理:if(异常条件){string error=" XXXX";return error;},代码在逻辑代码中,代码量很多的情况下,要花大量的时间去区分那里是错误处理代码,那里是业务代码。
try {业务代码}
catch(){错误处理代码}
finaly{资源释放代码}

二、代码不应该抛出特定的异常
代码主动抛出特定异常,会造成每次有新的异常出现的时候,就要打开封装好的代码,throw new exception,违反了开放/封闭原则。
所以在try的业务代码块不写throw语句,发生了异常,使用catch进行捕捉即可。

三、catch代码块做的主要事情
主要是进行,记录 失败的操作和失败类型,Log出来,
也可以throw exception 给特定的类捕捉到,进行错误处理

四、定义异常类
一段业务代码有大量的catch语句的时候,并且catch的语句的操作还是记录异常时候,可以把catch ()中的异常封装到一个类型Myexception,直接一个catch语句捕捉该异常,起到简化代码的作用,另外有新的异常出现的时候,可以修改Myexception,而不用去修改原本的代码。

五、特例模式
创建一个类或配置一个对象,用来处理特例。异常行为被封装到特例对象中。
根据实际的业务进行选择,是用异常处理来处理异常(通常情况),还是使用特例模式进行异常处理。

六、不返回null值
函数不应该返回null值,函数有返回值的时候,如果返回值有null的情况,例如要返回一个List 的时候,List对象为空,返回一个长度为0的List好过返回null。避免调用者层层的Null值检查

七、不传递null值
除非函数允许,否则调用方法传递参数的时候,禁止传递null值。

总结:
1.错误处理从逻辑代码中分离出来
2.函数不抛出特定的异常
3.catch的处理方式一般是记录错误
4.不返回null,不传递null

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值