там должен так или иначе показать, почему "попытка" перестала работать, и пропущенный к "кроме", не выписывая все возможные ошибки вручную, и не заканчивая программу?
пример:
try:
1/0
except:
someway to show
"Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
1/0
ZeroDivisionError: integer division or modulo by zero"
я не хочу делатьif:print error 1, elif: print error 2, elif: etc...
. я хочу видеть ошибку, которую показали бы, имел try
не там
Попробуйте:
>>> try:
... 1/0
... except Exception, e:
... print e
...
integer division or modulo by zero
Существуют и другие варианты синтаксиса, например: [
>>> try:
... 1/0
... except Exception as e:
... print e
...
integer division or modulo by zero
] Более подробную информацию можно найти в руководстве по ошибкам .
Я часто использую трассировку
, чтобы записать такое исключение в журнал или показать на stderr:
import traceback
import sys
try:
print 1/0
except Exception:
s = traceback.format_exc()
serr = "there were errors:\n%s\n" % (s)
sys.stderr.write(serr)
Вывод покажет информацию о строке, являющейся источником, где произошло исключение:
there were errors:
Traceback (most recent call last):
File "c:\test\ex.py", line 5, in <module>
print 1/0
ZeroDivisionError: integer division or modulo by zero