- Непосредственно перед тем, как я вызову исключение
- Когда я перехватываю исключение на более высоком уровне
- Дает ли ведение журнала на сайте повышения контекста лучший контекст?
- Имеет ли ведение журнала на сайте перехвата больше смысла с точки зрения архитектуры?
- Существует ли общепринятая передовая практика?
Код: Выделить всё
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
Мобильная версия