如何在代码中进行错误处理

很久之前,许多语言都不支持异常(当前有一些嵌入式设备不支持高级语言),这些语言汇报和处理错误的手段都很有限。甚至需要单独维护一个错误码表,方便开发者或使用者定位问题。高级语言一般都封装了异常方法。通过异常,可以快速而准确的抛出程序所遇到的问题。

def division(a, b):
    if b == 0:
      raise Exception( "Division by zero condition!")
    return a/b

下面是错误处理的几条建议:
1. 给出异常的环境说明
你抛出的每个异常,应该提供足够的信息,用来判断错误的来源和位置。主要就是包括失败的操作与失败类型。类型通常会封装为不同的错误类型,操作应该由错误信息记录。这样方便try-catch模块解析并显示。
2.别返回空值
很多程序员喜欢在异常时返回一个None,实际上,这会导致接下来的每一步都要进行判空处理。

name = student_a.get_name()
if not name:
   # do something

在get_name中,较为方便的做法是,如果无法获取就抛出异常,而非返回一个None。这样可以让程序读起来更加的顺畅,也减少了很多不必要的判断。
3.使用默认值
如果你来封装API,频繁的抛出异常会让开发者的程序走向危险边缘。此时,返回默认值会比抛出异常更方便。我们举个例子,统计学校中的独生子:

total_single_sons = []
for class in classes:
    total_single_sons.extend(class.get_single_son())

上面代码中,get_single_son()函数,如果为空,抛出异常就会使程序打断。此时建议返回[],而非抛出异常。

你可能感兴趣的:(如何在代码中进行错误处理)