У меня есть попытка... кроме блока в моем коде и когда исключение выбрано. Я просто хочу продолжить код, потому что в этом случае все по-прежнему может работать нормально. Проблема в том, что если вы оставите за исключением: block empty или С#do ничего, это даст вам синтаксическую ошибку. Я не могу использовать continue, потому что он не в цикле. Есть ли ключевое слово, которое я могу использовать, которое говорит, что код просто продолжает идти?
Python: Как игнорировать исключение и продолжить?
Ответ 1
except:
pass
Ответ 2
Общий ответ
Стандартным "nop" в Python является оператор pass
:
try:
do_something()
except Exception:
pass
Использование except Exception
вместо "голого", except
исключением того, чтобы SystemExit
исключений, таких как SystemExit
, KeyboardInterrupt
и т.д.
Python 2
Из-за того, что последнее выброшенное исключение запоминалось в Python 2, некоторые объекты, участвующие в операторе выбрасывания исключений, сохраняются в течение неопределенного времени (фактически, до следующего исключения). В случае, если это важно для вас и (как правило) вам не нужно запоминать последнее выброшенное исключение, вы можете сделать следующее вместо pass
:
try:
do_something()
except Exception:
sys.exc_clear()
Это очищает последнее выброшенное исключение.
Python 3
В Python 3 переменная, которая содержит экземпляр исключения, удаляется при выходе из блока except
. Даже если переменная содержала значение ранее, после ввода и выхода из блока except
она снова становится неопределенной.
Ответ 3
В Python 3.4 появился новый способ:
from contextlib import suppress
with suppress(Exception):
# your code
Здесь коммит, который добавил его: http://hg.python.org/cpython/rev/406b47c64480
И здесь автор, Раймонд Хеттингер, говорит об этом и о всякой другой жаре Python (соответствующий бит в 43:30): http://www.youtube.com/watch?v=OSGv2VnC0go
Если вы хотите подражать искомому ключевому слову except
, а также игнорировать такие вещи, как KeyboardInterrupt
, хотя обычно вы не можете использовать with suppress(BaseException)
.
Изменить: похоже, что ignored
было переименовано в suppress
до выпуска 3.4.
Ответ 4
Попробуйте следующее:
try:
blah()
except:
pass