✓ try-кроме-еще-наконец оператор - отличный способ отловить и обработать исключения (ошибки времени выполнения) в Python.
✓ Так что если вы хотите перехватить и сохранитьИсключения в массиве, тогда отличным решением для вас будет использование оператора try-кроме .Таким образом, вы можете перехватывать и хранить в любой структуре данных, такой как списки и т. Д., И ваша программа при продолжении ее выполнения не прекратит работу.
✓ Ниже приведен модифицированный код, в котором я использовал цикл for, которыйловит ошибку 5 раз и сохраняет в списке.
validationErrors = []
for i in range(5):
try:
jsonschema.validate(jsonFile, schema)
except jsonschema.exceptions.ValidationError as error:
validationErrors.append(error)
✓ Наконец, вы можете взглянуть на приведенный ниже пример кода, где я сохранил ZeroDivisionError и его связанное строковое сообщение в 2 разныхсписки, повторяя цикл for 5 раз.
2-й список ZeroDivisionErrorMessagesList можно использовать для перехода к шаблону, если вы хотите печатать сообщения на веб-странице (если вы хотите).Вы также можете использовать 1-й.
ZeroDivisionErrorsList = [];
ZeroDivisionErrorMessagesList = list(); # list() is same as [];
for i in range(5):
try:
a = 10 / 0; # it will raise exception
print(a);. # it will not execute
except ZeroDivisionError as error:
ZeroDivisionErrorsList.append(error)
ZeroDivisionErrorMessagesList.append(str(error))
print(ZeroDivisionErrorsList);
print(); # new line
print(ZeroDivisionErrorMessagesList);
"Выход:
[ZeroDivisionError('division by zero',),
ZeroDivisionError('division by zero',),
ZeroDivisionError('division by zero',),
ZeroDivisionError('division by zero',),
ZeroDivisionError('division by zero',)]
['division by zero', 'division by zero', 'division by zero', 'division by zero', 'division by zero']