Python尝试除外

eal*_*eon 6 python

try:
    #statement 1
    #statement 2
except Exception, err:
    print err
    pass
Run Code Online (Sandbox Code Playgroud)

这可能是非常微不足道的,但直到现在我才真正想过它,我发现自己无法回答以下问题:

  1. 如果在语句1中引发错误,是否会执行语句2?

  2. 在语句1和语句2都引发错误的情况下,Exception如何处理?在上面的代码中打印出哪个错误?都?

iCo*_*dez 10

你的两个问题的答案都是"不".

只要在try/except块中抛出错误,try就会立即退出该部件:

>>> try:
...     1/0
...     print 'hi'
... except ZeroDivisionError, e:
...     print 'error'
...
error
>>>
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,代码永远不会出现在这个print 'hi'部分,即使我except为它做了一个.

你可以在这里阅读更多.


sam*_*rap 8

来自Python文档:

如果在执行try子句期间发生异常,则跳过该子句的其余部分.然后,如果其类型匹配except关键字后面的异常,则执行except子句,然后在try语句之后继续执行.

因此,一旦发生错误,它就会跳到异常

http://docs.python.org/2/tutorial/errors.html