我们的项目变得有点大,前几天我遇到了这个问题,当我试图向一个函数添加一个简单的错误消息时:
def create_report(id):
report = new_report(id)
if not report:
raise api_error('Could not find report with id %d' % (id,))
...
问题? id
是一个字符串,当它试图将其格式化为数字时它崩溃了。我不是该函数的原始作者,并错误地认为那id
将是一个数字。相反,它应该是一个字符串。哎呀。
如果这是一种强类型语言,我会立即从编译器中得到一个错误;处理这类事情的最佳方法是什么?我应该检查每个参数的类型(看起来像很多跑腿),还是应该把所有东西都放在try:
块中?也许我们应该在每个函数中写一个注释来描述它的参数?或者我只是应该知道更好?