如果我们再程序中写出一个会引发异常的代码,比如1/0,就会引发一个异常,程序中止。

输出:

1
2
3
4
5
Traceback (most recent call last):
File "trackbacks.py", line 1, in <module>
1/0
ZeroDivisionError: integer division or modulo by zero
Shell 已返回1

为了程序的健壮性,我们常常加入异常处理。

1
2
3
4
try:
1/0
except:
print "error"

这样,程序就会输出error后正常退出。那么为了能处理异常而又看见异常信息的话就要用到traceback模块了:

1
2
3
4
5
6
import traceback
try:
1/0
except:
print "error"
print traceback.format_exc()

结果:

1
2
3
4
5
error
Traceback (most recent call last):
File "trackbacks.py", line 4, in <module>
1/0
ZeroDivisionError: integer division or modulo by zero

也可以把信息输出到文件中,具体看 http://docs.python.org/2/library/traceback.html