2016-10-25 3 views
0

Python 3 изменил синтаксис catching Exceptions. Как я могу сделать свой сценарий совместимым для обеих версий? Я знаю способ обнаружения версии Python, но мне нужно использовать If-else проверить и повторить весь блок try-catch?Как реализовать обработку исключений для Python 2 и 3?

+2

вы можете использовать 'кроме скучного, как x' синтаксиса непосредственно в Python 2.7, если это то, что вы имеете в виду. – BrenBarn

+0

@BrenBarn Yep !! благодаря!! – Volatil3

ответ

2

Python 2.6 и 2.7 поддерживают новый синтаксис except Exception as e:, так же, как Python 3.


Если вы несчастная достаточно, чтобы использовать давно мертвую Python 2 версии 2.5, или даже (удушье) 2.4, то по-прежнему «возможно», но вы должны прибегнуть к некоторым ужасным писакам как

>>> import sys 
>>> try: 
...  1/0 
... except ZeroDivisionError: 
...  e = sys.exc_info()[1] 
...  # process e 
...  del e 
Смежные вопросы