0

Типичная структура для обработки исключений ниже:Что означает «исключение как e» в python?

try: 
    pass 
except Exception, e: 
    raise 
else: 
    pass 
finally: 
    pass 

Могу ли я узнать, что делает except Exception, e: или except Exception as e: означает? Обычно я буду использовать print (e), чтобы напечатать сообщение об ошибке, но мне интересно, что программа сделала для генерации e.

Если бы я был построен по-другому (внизу), как бы это было?

except Exception: 
    e = Exception.something 

Каким должен быть метод замены something?

Когда тело кода под try не дает никаких исключений, прогейм выполнит код под else. Но что делает finally здесь?

Спасибо! :)

+3

В этом вопросе есть много вопросов. Я бы порекомендовал вам прочитать документацию для 'try': https://docs.python.org/3/reference/compound_stmts.html#the-try-statement. Это ответит на большинство из них. – iCodez

ответ

6

except Exception as e или except Exception, e (только Python 2.x) означает, что он ловит исключения типа Exception, и в except: блоке, исключение, который был поднят (реальный объект, а не класс исключения) связан с переменная e.

Что касается finally, это блок, который всегда запускается на выполнение, независимо от того, что происходит, после except блока (если возбуждается исключение), но всегда, прежде чем что-то, что бы выскочить из объема срабатывает (например, return, continue или raise).