обновление.Способ игнорирования определенных исключений состоит в том, чтобы перехватить требуемый тип исключения, проверить его, чтобы увидеть, хотите ли вы его игнорировать, и повторно вызвать его, если вы этого не сделаете.
try:
do_something1
except TheExceptionTypeThatICanHandleError, e:
if e.strerror != 10001:
raise
finally:
clean_up
Обратите также внимание, что для каждого оператора try
требуется свое собственное предложение finally
, если вы хотите, чтобы оно было.Он не присоединится к предыдущему оператору try
.Оператор raise
, не имеющий ничего другого, является правильным способом для повторного вызова последнего исключения.Не позволяйте никому говорить вам иначе.
То, что вы хотите - это продолжения, которые Python не предоставляет изначально.Кроме того, ответ на ваш вопрос зависит от того, что именно вы хотите сделать.Если вы хотите, чтобы do_something1
продолжался независимо от исключений, тогда it должен будет перехватывать исключения и игнорировать их сам.
, если вы просто хотите, чтобы do_something2
происходил независимо от того, do_something1
завершено, вам нужен отдельный оператор try
для каждого.
try:
do_something1()
except:
pass
try:
do_something2()
except:
pass
и т. Д.Если вы можете предоставить более подробный пример того, что именно вы хотите сделать, то есть большая вероятность, что я или кто-то умнее меня может либо помочь вам, либо (что более вероятно) отговорить вас от этого и предложить более разумныйальтернатива.