异常类型:
Exception 所有异常的基类
AttributeError 特性引用或复制失败时引发
I0Error 试图打开不存在文件时发生
IndexError 在使用序列中不存在的索引时引发
KeyError 在使用映射中不存在的键时引发
NameError 在找不到名字(变量)时引发
SyntaxError 在代码为错误形式时引发
TypeError 在内建操作或者函数应用于错误类型的对象时引发
ValueError 在内建操作或者函数应用于正确类型的对象,但是该对象使用不合适的值时引发
ZeroDivisionError 在除法或者模除操作的第二个参数为0时引发
扑捉异常
捕捉异常用try except语句来实现
在代码开始前,顶头写try:,接着写表达,except 异常类型代码 print:“”
例如:
try:
x=input("Enter the first number:")
y=input('Enter the second number:')
print x/y
except ZeroDivisionError:
print ""The second number can't be zero!"
如果不止一个except,可以继续写except 异常类型代码+print
捕捉全部异常:
try:
x=input("Enter the first number:")
y=input('Enter the second number:')
print x/y
except:
print "Someting wrong happened..."
logging模块,执行出错时,记录日志,并继续执行后面的代码
例:
import logging
def foo(s):
return 10/int(s)
def bar(s):
retrun foo(s)*2
def main():
try:
bar(0)
except Exception as e:
logging.exception(e) #记录错误日志,并继续执行后面的代码
main()
print 'END'