Общие операции при обработке исключений для нескольких типов исключений python - PullRequest
0 голосов
/ 02 октября 2018

У меня есть функция f(), которую нужно вызывать, если подняты ExceptionA или ExceptionB.Мне нужно звонить A() только в случае повышения ExceptionA, и мне нужно звонить B() только в случае повышения ExceptionB.Мне не нужно вызывать какие-либо функции, если не сгенерировано ни одно исключение.

Рассмотрим следующий код:

try:
    some_flaky_function()

except ExceptionA:
    A()
    f()

except ExceptionB:
    B()
    f()

Этот код будет выполнять именно то, что мне нужно, однако я ищу способчтобы не было стандартного вызова f() в обоих except блоках.Я знаю, что блок finally будет выполняться независимо от исключения, но он также выполняется при успешной попытке.Более того, даже если приведенный выше код обернут в функцию, то после вызова функции в блоке try block still после * вызова функции выполняется оператор finally.Можно ли в любом случае написать приведенный выше код одним вызовом f()?

...