所以我想知道编写try except语句的正确方法。我对Python中的错误处理还不熟悉。
选项1
try:
itemCode = items["itemCode"]
dbObject=db.GqlQuery("SELECT * FROM %s WHERE code=:1" % dbName,itemCode).get()
dbObject.delete()
except AttributeError:
print "There's no item with that code"
except KeyError:
print "Bad parameter name"
except:
print "Unknow error"
选项2
try:
itemCode = items["itemCode"]
except KeyError:
print "Bad parameter name"
else:
dbObject=db.GqlQuery("SELECT * FROM %s WHERE code=:1" % dbName,itemCode).get()
try:
dbObject.delete()
except AttributeError:
print "There's no item with that code"
except:
print "Unknow error"
选项3 你还能想到更好的选项吗。
选项1,我们可以看到我将所有代码都包裹在try块中。 选项2,它使用嵌套块。 它在特定行语句上引发异常。
如果有错误,我会很高兴了解。
if dbObject is not None: dbObject.delete()
而不是在此处捕获 AttributeError。 - jfs