我正在阅读“ Head First Python”一书(这是我今年要学习的语言),然后进入一节,他们讨论了两种代码技术:
检查First与Exception处理。
这是Python代码的示例:
# Checking First
for eachLine in open("../../data/sketch.txt"):
if eachLine.find(":") != -1:
(role, lineSpoken) = eachLine.split(":",1)
print("role=%(role)s lineSpoken=%(lineSpoken)s" % locals())
# Exception handling
for eachLine in open("../../data/sketch.txt"):
try:
(role, lineSpoken) = eachLine.split(":",1)
print("role=%(role)s lineSpoken=%(lineSpoken)s" % locals())
except:
pass
第一个示例直接处理.split
函数中的问题。第二个只是让异常处理程序处理它(并忽略该问题)。
他们在书中主张使用异常处理而不是先检查。该论点是异常代码将捕获所有错误,其中首先进行检查将仅捕获您所考虑的事情(并且您错过了极端情况)。我被教导首先要检查,所以我的本能是这样做,但是他们的想法很有趣。我从未想过使用异常处理来处理案例。
通常认为这两种方法中的哪一种更好?
if -1 == eachLine.find(":"): continue
,那么循环的其余部分也不会缩进。