Исключение, выброшенное из условия «Окончательно» - PullRequest
0 голосов
/ 25 апреля 2019

Я знаю, что в общем случае не следует ожидать состояния, в котором выдается исключение из условия finally, однако я вижу случаи, когда это может произойти.

Каков ваш подход к этому, вы бы ввели еще try except вложенность в предложение finally?

Это звучит несколько странно ...

1 Ответ

0 голосов
/ 25 апреля 2019

Я знаю, что в общем случае не следует ожидать состояния, в котором выдается исключение из условия finally, однако я вижу случаи, когда это может произойти.

Это не совсемв предложении finally есть что-то, что может выдавать ошибки, но это, безусловно, разрешено.Я бы посоветовал вам подумать, действительно ли это необходимо для вашего варианта использования (трудно сказать, когда ваш вопрос носит настолько общий характер).

Не могли бы вы ввести еще одну попытку, кроме вложения в предложение finally?

Да, это действительно единственный способ справиться с этим.Например, это может быть обработано так:

try:
    maybe_error()
except SpecificError:
    handle_error()
finally:
    try:
        risky_close_resource()
    except OtherError:
        handle_other_error()
    finally:
        close_everything_without_risks()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...