Когда исключение Python генерируется кодом, который занимает несколько строк, например ::100100
myfoos = [foo("bar",
"baz",
"quux",
i) for i in range(10)]
Python сообщит номер строки последней строки и покажет фрагмент кода из этой строки:
Traceback (most recent call last):
File "test.py", line 4, in <module>
i) for i in range(10)]
NameError: name 'foo' is not defined
Есть ли способ определить, что такое первая строка? Есть ли способ перехватить исключение и манипулировать объектом traceback , чтобы иметь возможность сообщить что-то вроде этого:
Traceback (most recent call last):
File "test.py", lines 1-4 in <module>
myfoos = [foo("bar",
"baz",
"quux",
i) for i in range(10)]
NameError: name 'foo' is not defined