Существует определенная проблема, с которой я столкнулся с обработкой исключений в Python. Было много ситуаций, когда есть область кода, где я хочу, чтобы все исключения игнорировались. Скажем, у меня есть 100 строк кода, где я хочу, чтобы это произошло.Обработка исключений в Python
Это то, что большинство будет думать, будет решение:
try:
line 1
line 2
line 3
...
line 99
line 100
except:
pass
Это на самом деле не работает в моей ситуации (и во многих других ситуациях). Предположим, что в строке 3 есть исключение. Когда исключение выбрасывается, оно переходит прямо к «pass» и пропускает строки 4-100. Единственное решение, я смог придумать это:
try:
line 1
except:
pass
try:
line 2
except:
pass
try:
line 3
except:
pass
...
try:
line 99
except:
pass
try:
line 100
except:
pass
Но, как видно, это очень некрасиво, неаккуратно, и принимает абсолютно навсегда. Как я могу сделать вышеуказанный код короче, чище? Бонусные баллы, если вы даете метод, позволяющий заменить «pass» другим кодом.
Похоже, вам нужно сделать серьезный пересмотр кода. У вас действительно есть 100 полностью независимых строк кода, которые вообще не зависят друг от друга и не могут быть помещены в цикл, что все может потерпеть неудачу в том, как ваш код может восстановиться? –
, если вы проводите тесты, вы действительно должны иметь инкрементные тесты в любом случае ... Так например .... если рабочий поток a-> b-> c, для выполнения c, ему необходимо сначала выполнить a-> b .... так что если a или b терпят неудачу, не было бы причин для проверки на c. – Fallenreaper
У меня на самом деле нет 100 строк, у меня иногда есть 6 или 7. Даже с 6 или 7, это все еще очень неряшливо. – Douglas