3种错误处理的方法

通常我们的有三种方式把错误信息传递给函数的调用者。

1.函数用返回值来告知调用者是否出错。这种方式最大的问题是使用不便,因为函数不能直接把计算结果通过返回值赋给其他变量,同时也不能把这个函数的计算结果直接作为参数传递给其他函数。

2.当发生错误时设置一个全局变量。此时我们可以在返回值中传递计算结果了。这种方法比第一种方法使用起来更加方便,因为调用者可以直接把返回值赋给其他变量或者作为参数传递给其他函数。

但是这个方法有个问题:调用者很容易就会忘记去检查全局变量,因此在调用出错的时候,忘记做相应的错误处理,从而留下安全隐患。

3.第三种方式就是异常。等函数运行出错的时候,我们就抛出一个异常,我们还可以根据不同的出错原因定义不同的异常类型。因此函数的调用者根据异常的类型就能知道出错的原因,从而做相应的处理。

另外,我们能够显示划分程序正常运行的代码块(try 模块)和异常处理的代码块(catch 模块),逻辑比较清晰。另外,当抛出异常的时候,程序的执行会打乱正常的顺序,对程序的性能有很大的影响。


方式优点缺点
返回值和系统 API 一致不能方便的使用计算结果
全局变量能够方便的使用计算结果用户可能会忘记检查全局变量
异常可以为不同的出错原因定义不同的出错类型,逻辑清晰有些语言不支持异常,抛出异常时对性能有负面影响

上述三种错误处理方式各有其优缺点。那么,面试的时候我们应该采取哪种方式呢?这要看面试官的要求。在听到面试官的题目之后,我们要尽快分析出可能存在哪些非法的输入,并和面试官讨论如何处理这些非法输入。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值