如果我在编写一些代码时不确定某事,我会尝试再次阅读The Zen of Python
。这一次,那些台词让我犹豫了。
Errors should never pass silently.
Unless explicitly silenced.
在当前代码中,我有一些可能如下所示的函数:
def add_v_1(a, b):
return a + b
所有对他们的要求如下:
c = add_v_1(7, [])
此类代码的异常将冒泡并在上层捕获。
但应该是这样吗?
add_v_1
可以引发TypeError
异常,我想从中恢复。因此,可能的函数调用将是:
try:
c = add_v_1(7, [])
except TypeError:
print "Incorrect types!"
但是对于每次调用,我都应该进行异常处理。看起来很重。
所以,我可以这样做:
def add_v_2(a, b):
try:
return a + b
except TypeError:
print "Incorrect types!"
一个电话是:
c = add_v_2(7, [])
看起来更干净。
似乎所有这些方法都遵循The Zen of Python
但其中哪一种是更好的选择?