Python Try-Except inside of Function

后端 未结 6 1898
旧巷少年郎
旧巷少年郎 2020-12-11 23:03

I\'ve got a pretty good understanding of python\'s try-except clause, but I\'m encountering problems when trying to put it inside of a function.

>>>         


        
6条回答
  •  無奈伤痛
    2020-12-11 23:59

    tryAppend(foo, var1) is evaluated (roughly) in this order:

    1. Fetch the object tryAppend references
    2. Fetch the object foo references
    3. Fetch the object var1 references
    4. Call the first with the second and third as arguments (=do whatever the function tryAppend does, uncluding the try-except)

    The error occurs at #2, long before the function and the try block is entered. In fact, the try block cannot to throw a NameError, as the only names used are parent and child, both being arguments and thus always available (if .append does not exist, that's an AttributeError).

    In the same way, the following code will not print "caught it" because the exception is raised before the try block is executed:

    raise Exception("Catch me if you can")
    try:
        pass # do nothing
    except:
        print "caught it"
    

提交回复
热议问题