How to use try, except, else correctly in Python

前端 未结 3 2056
囚心锁ツ
囚心锁ツ 2021-01-04 04:10

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         


        
3条回答
  •  执念已碎
    2021-01-04 04:29

    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.

提交回复
热议问题