978просмотров
18 мая 2023 г.
Score: 1.1K
Еще про исключения: repr(e) -- это, конечно хорошо, но ведь есть ещё лучше, а именно: from traceback import print_exc
...
my_dict = {}
try: b = my_dict["bad"]
except Exception as e: print_exc() что выведет: Traceback (most recent call last): File "<pyshell#1>", line 2, in <module>
KeyError: 'bad' и при этом программа продолжит свою работу. А если ошибку надо выводить не в stdout, то можно сделать так: from traceback import print_exc
from io import StringIO
...
try: b = my_dict["bad"]
except Exception: buffer = StringIO() print_exc(file=buffer) out_var = buffer.getvalue()