2016-10-25 53 views
0

Python 3改變了捕捉異常的語法。我怎樣才能讓我的腳本兼容兩個版本?我知道檢測Python版本的方法,但是我需要使用If-else檢查並重復整個try-catch塊嗎?如何爲Python 2和Python 3實現異常處理?

+2

您可以使用'除了布拉赫作爲x'語法直接在Python 2.7,如果這是你的意思。 – BrenBarn

+0

@BrenBarn是的!謝謝!! – Volatil3

回答

2

的Python 2.6和2.7支持新except Exception as e:語法,就像Python 3的


如果你不幸足以使用長死的Python 2.5,甚至(喘氣)2個版本2.4,它仍是「可能的」,但你必須採取一些可怕的黑客就像

>>> import sys 
>>> try: 
...  1/0 
... except ZeroDivisionError: 
...  e = sys.exc_info()[1] 
...  # process e 
...  del e