У меня есть случай, когда мне нужно поймать какое-то исключение ( в коде, например, я хочу поймать ZeroDivisionError
) и обработать его в моем собственном диспетчере контекста. Мне нужно проверить счетчик этого исключения и сделать печать в консоли. Теперь, когда я запускаю свой код, я получаю ZeroDivisionError
один раз, а затем
Traceback (most recent call last):
File "/home/example.py", line 23, in foo
a / b
ZeroDivisionError: division by zero
Process finished with exit code 1
Например:
class ExceptionCather:
def __init__(
self,
try_counter,
exc_type=None
):
self.try_counter = try_counter
def __enter__(self):
return self
def __exit__(self, exc_type, exc, tb):
if exc_type == ZeroDivisionError:
self.try_counter += 1
if self.try_counter == 2:
print(self.try_counter)
def foo(a, b):
try_counter = 0
while True:
with ExceptionCather(try_counter):
a / b
if __name__ == '__main__':
foo(1, 0)
Как я могу поймать ошибку, сделать печать в утешить и продолжить с моим сценарием? Будем благодарны за помощь