Что люди использовали для одновременной регистрации, регистрации и сообщения о множественных ошибках проверки данных в Python?
Я создаю приложение на Python 3, которое сначала проверяет входные данные, а затем обрабатывает их. Сообщение об ошибках на первом этапе является частью предполагаемой функциональности программы, поэтому я не хочу, чтобы мой валидатор отказывался от первого исключения. В частности, данные являются табличными, и я хочу иметь возможность возвращать, а не повышать, исключение для каждой строки таблицы, которая не проверяется.
обсуждение на форуме пару лет назад рассматривает несколько решений, включая следующие, которые кажутся мне наиболее чистыми:
errors = []
for item in data:
try:
process(item)
except ValidationError as e:
errors.append(e)
if errors:
raise MultipleValidationErrors(errors)
где класс MultipleValidationErrors
будет иметь соответствующий метод __str__
для перечисления полезной информации обо всех ValidationErrors
в нем.
Другие рекомендуют использовать модуль traceback
, но, поскольку я хочу уловить исключения, это ошибки проверки данных, а не ошибки программы, что кажется неуместным. Впрочем, получение соответствующего модуля logging
может быть уместным.