程序异常该如何返回

程序异常该如何返回

前言

函数运行结果分为两类,一类是预期的结果,一类是非预期的结果,也就是出BUG。那程序异常该如何返回呢?

正文

正常情况下,函数返回的类型是确定的,但是在异常情况下,函数返回的类型就非常多了。总的来说有以下4种方式。

1. 返回错误码

在Java、Python等编程语言中,基本都用异常来处理函数出错的情况,极少会用到错误码。

2. 返回NULL

一般来说,NULL是用来表示“不存在”这种语义,如果是查询,生成某参数之类的函数,在失败的时候是可以返回NULL的。

但也有很多人不建议返回NULL值,因为一旦返回NULL,我们在使用它的时候,忘了做非空判断,结果就很可能会报空指针异常,这是我们不愿意看到的,另外还有一个原因就是,如果大量函数都定义了可能返回NULL的这种情况,那么正常的业务逻辑里很可能会产生大量的非空逻辑判断,影响代码的可读性。

不过我认为,在某些查询,生产某个参数之类的情况,返回NULL也是一种正常的业务逻辑,那这种情况是可以使用NULL作为返回值的。

3. 返回空对象

针对返回NULL值的各种弊端,有一种经典的应对策略就是用空对象设计模式,这里不做展开。还有两种比较简单的返回空对象的方式场景就是空字符串空集合

当函数返回的数据是字符串或者集合类型的时候,我们可以用空字符串或者空集合来代替NULL,用来表示不存在的情况,避免空指针异常的出现。

4. 抛出异常对象

最常用的处理方式,就是抛出异常。异常可以携带详细的错误信息,比如函数调用堆栈信息。并且异常可以将正常逻辑和异常逻辑分离开来,代码可读性更好。

在一些通用模块的逻辑当中,比如某些工具类,处理失败时,可以包装一个异常进行返回,由业务逻辑层进行判断业务是否继续。

总结

程序异常时,有四种返回方式:异常码,NULL值,空对象,异常对象。大家可以根据具体使用场景,进行选择。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值