Должен ли я регистрировать исключения при поднятии или при перехвате? [закрыто]Python

Программы на Python
Ответить
Anonymous
 Должен ли я регистрировать исключения при поднятии или при перехвате? [закрыто]

Сообщение Anonymous »

Когда возникает ошибка, я вижу два возможных места для ее регистрации:
  • Непосредственно перед тем, как я вызову исключение
  • Когда я перехватываю исключение на более высоком уровне
Оба варианта кажутся мне разумными, но я не понимаю компромиссов каждого подхода.
  • Дает ли ведение журнала на сайте повышения контекста лучший контекст?
  • Имеет ли ведение журнала на сайте перехвата больше смысла с точки зрения архитектуры?
  • Существует ли общепринятая передовая практика?
Более конкретно, теряю ли я при этом какие-либо значимые ошибки/исключения

Код: Выделить всё

def foo(payload):
try:
# some api/lib call
except LibSpecificException as e:
logging.info("Lib call failed")
raise MyCustomException("Lib call failed") from e

def main():
data = [1,2,3,4]
try:
for datum in data:
foo(datum)
# some other code that might trigger MyCustomException
except MyCustomException as e
logging.exception("Core logic in main failed")
# clean up and shutdown or ignore or reraise - have those all in different places
Мой код, например, может быть ошибочным.
В любом случае, я могу спамить себя журналами, если не поймаю и не остановлюсь здесь на верхнем уровне, но могу потерять контекст, если не войду на нижний уровень...

Подробнее здесь: https://stackoverflow.com/questions/798 ... n-catching
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»