1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
import sys
from loguru import logger
logger.remove()
logger.add(sys.stderr, format="", colorize=False, backtrace=True, diagnose=False)
def a(x, y):
x / y
@logger.catch
def b_decorated():
try:
a(1, 0)
except ZeroDivisionError as e:
raise ValueError("NOK") from e
def b_not_decorated():
try:
a(1, 0)
except ZeroDivisionError as e:
raise ValueError("NOK") from e
def c_decorator():
b_decorated()
def c_context_manager():
with logger.catch():
b_not_decorated()
def c_explicit():
try:
b_not_decorated()
except ValueError:
logger.exception("")
c_decorator()
c_context_manager()
c_explicit()
|