1.异常处理
异常处理其实就是将程序抛出的错误抓住,以便能够不影响程序的运行。
我们先定义一个列表,跟一个字典
names=['wu','jack']
data={}
(1)然后抓住它们抛出的异常:
try:
names[3]
data['name']
except IndexError as e:
print("列表操作错误",e)
except KeyError as e:
print("没有这个key",e)
以上这两个均异常,抓住一个异常便不会在往下走了,所以结果为:列表操作错误 list index out of range
我们还可以将这两个写在一起:
except (KeyError,IndexError) as e:
print("没有这个key",e)
(2)如果是文件系统的系统异常,如以下代码
try:
open("tes.txt")
a=1
except FileNotFoundError as e: #针对文件存在的错误, open("tes.txt")
print("有错误", e)
(3)如果是已知的抛出异常,我们用已知的名字来写,如FileNotFoundError,这样方便调试程序;
如果是未知的错误,我们用以下程序,except Exception 可以抓住所有的错误;
except Exception as e: #抓住所有的错误,可以用这个来抓取未知的错误
print("未知错误",e)
(4)else在没有发生错误时执行
else: #没有错误的时候执行
print("一切正常")
(5)finally,不管有没有错误都会执行
finally: #不管有没有错误都会执行
print("不管用没有错都执行")
2.总结:异常处理的一般格式
try :
code
except (Error1,Erro2) as e:
print e
except Exception :抓住所有错误,可以用来抓取未知错误
3.自定义异常:
class WuException(Exception):
def __init__(self, msg):
self.message = msg
def __str__(self):
return self.message
# return "ssss"
try:
raise WuException('数据库连接不上') #触发异常
except WuException as e:
print(e)