一。异常
定义:程序出现了意想不到的情况。
注意:异常不解决,程序会奔溃,停止运行。
1)捕获异常
形式:
try 要运行的有可能发生异常的代码 :
代码
except 异常:
出现异常的时候要运行的代码(执行的操作),记录日志
注意:一旦 try 当中出现异常,立即调到 except 子句,try 剩下的代码不会再执行。
例子(不抛出异常):
try:
list_1= [‘yuz‘, ‘bt‘, ‘wfe‘, ‘fwo‘]
print(list_1[9])
except:
pass
运行结果(直接把异常接收了不会直接报错):
try:开始监控代码
except:接收异常
例子2(抛出异常):
try:
list_1= [‘yuz‘, ‘bt‘, ‘wfe‘, ‘fwo‘]
print(list_1[9])
except:
raise
运行结果:
raise:抛出异常
2)异常处理
例子1(捕获异常并自行抛出 except Exception as e):
try:
list_1= [‘yuz‘, ‘bt‘, ‘wfe‘, ‘fwo‘]
print(list_1[9])
except Exception as e:
print("list_1 这里执行出错了,错误是: {}".format(e))
运行结果:
注意:Exception 是捕捉常用异常(语法错误是不能捕捉的);在写程序时建议先不要对异常进行捕捉(捕捉后不抛出该异常根本不知道是什么类型的异常);
对每一种不同类型的异常分开处理;
例子3(finally:管有没有报错,fianally 都会执行的。):
try:
list_1 = [‘yuz‘, ‘bt‘, ‘wfe‘, ‘fwo‘]
print(list_1[9])
except Exception as err:
print("程序出现错误 {}".format(err))
finally:
print("已经完成")
运行结果:
常用的异常类型:
ImportError: 无法引入模块或包。
IndexError: 下标索引超出序列边界;
NameError: 使用一个还未赋予对象的变量;
SyntaxError: 代码逻辑语法出错,不能执行; 不能去捕获
TypeError: 传入的对象类型与要求不符;
ValueError: 传入一个不被期望的值,即使类型正确。
KeyError: 试图访问你字典里不存在的键。
IOError:输入输出异常.文件操作
原文:https://www.cnblogs.com/newsss/p/12860535.html