поднять ValueError и войти в систему за один шаг - PullRequest
0 голосов
/ 02 ноября 2019

Каков наилучший способ вызвать ошибку и записать ошибку в файл журнала за один шаг?

Я часто хочу вызвать ошибку, но я хочу записать сообщение об ошибке в файл журналаслишком. Есть ли более элегантный способ, чем в коде ниже?

errormessage = 'blablabla!'
logger.critical(errormessage)
raise ValueError(errormessage)

Ответы [ 2 ]

1 голос
/ 02 ноября 2019

Конечно, вы можете написать функцию для их объединения, но есть и другой способ думать об этом: разделение двух шагов на самом деле хорошо, потому что в общем UX для фрагмента коданекоторые слои выше точки, в которой вы обнаруживаете и поднимаете исключение. Между ними могут быть слои, которые могут обнаруживать и восстанавливать после исключения.

Именно поэтому регистрация ошибки обычно не связана с обнаружением исключительной ситуации.

0 голосов
/ 02 ноября 2019

Напишите функцию для этого:

def log_error(error_type, message):
    logger.critical(message)
    return error_type(message)

Затем вызовите код следующим образом:

raise log_error(ValueError, 'blablabla!')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...