So I want to know which is the right way to write try except statements. I\'m new to error handling in Python.
Option 1
try:
itemCode = items[\"i
Instead of catching KeyError, I prefer using get method of dicts with validation.
itemCode = items.get("itemCode") # itemCode will be None, if no such key
if itemCode is not None:
print "code missing"
This is not "general" solution (see comments to my answer), but in this case it'll help.
And in first case I don't understand, why you trying to delete two times.
try:
itemCode = items.get("itemCode") # itemCode will be None, if no such key
if itemCode is not None:
print "code missing"
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 StandardError as ex: # good idea to be prepared to handle various fails
print "Unexpected error deleting item {}".format(ex)
And also, don't forget that python have finally section. It's oftem comes in handy sometimes.