防御式编程(可减少 null 指针错误等)

3 篇文章 0 订阅
2 篇文章 0 订阅

下面的这张图大家很熟悉吧,可以毫不夸张的说,程序猿与bug的斗争史大部分来源于与null指针的斗争史。
null指针异常
稳住,不慌,今天我们通过防御式编程来减少它的出现。

不过需要注意的是,防御式编程不止能减少null指针错误。

什么是防御式编程?

简单的说,就是保护程序避免受到错误的输入数据的影响,将错误限制在有限的范围内。

如何采取防御式编程?

其实你可能已经采取了这种编程思想,如下面第一张图。

一有错误,记录日志,立即返回。为什么返回,因为可以避免错误继续影响接下的程序。
范例1
当然还有不错的错误输入数据处理机制,如断言和异常。

断言(Assert)

断言是指在开发期间使用的,让程序在运行时进行自检的代码。

可能说了还是有点蒙,看下面spring的两段源码,相信你就知道断言怎么使用了。
断言1
断言2
有错误输入数据直接抛出异常,不在执行接下来的代码,避免错误延续下去。

异常(try-catch)

异常是把代码中的错误或异常事件传递给调用方代码的一种特殊手段。

还是看代码。
异常1
捕捉try范围内的异常,在catch中对异常作出相应处理,避免影响接下来的程序代码。

总之,虽然采取防御式编程并不能让你与null指针Say Goodbye,但至少可以减少null指针难为你。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值