1. 程式人生 > >python怎樣在一行中捕獲多個異常

python怎樣在一行中捕獲多個異常

key may tar python 教程 please targe 結果 www.

所屬網站分類: python基礎 > 異常處理


作者:浮沈

鏈接:http://www.pythonheidong.com/blog/article/71/

來源:python黑洞網,專註python資源,python教程,python技術!

我知道你能做到:

try:
    # do something that may fail
except:
    # do this if ANYTHING goes wrong
你也可以這樣做:

try:
    # do something that may fail
except IDontLikeYouException:
    # say please
except YouAreTooShortException:
    # stand on a ladder
但如果我想在兩個不同的異常中做同樣的事情,我現在能想到的最好的就是這樣做:

try:
    # do something that may fail
except IDontLikeYouException:
    # say please
except YouAreBeingMeanException:
    # say please
有什麽辦法我可以做這樣的事情(因為兩個異常的結果都是say please):

try:
    # do something that may fail
except IDontLikeYouException, YouAreBeingMeanException:
    # say please
實際上這不起作用,因為python把它當做以下語法:

try:
    # do something that may fail
except Exception, e:
    # say please

因此,在一行中捕獲多個異常並沒有實現。

有沒有辦法做到這一點?

通過閱讀官方文檔,我找到了答案:

except (IDontLikeYouException, YouAreBeingMeanException) as e:
    pass
或者(僅適用於Python 2):

except (IDontLikeYouException, YouAreBeingMeanException), e:
    pass

使用逗號將變量與變量分開仍然可以在Python 2.6和2.7中使用,但在Python 3中不起作用; 現在你應該使用as。

python怎樣在一行中捕獲多個異常