异常类型的文章链接:https://www.cnblogs.com/nmb-musen/p/10856023.html
异常捕获的语法
1,try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理
2,一个try语句可以对应多个expect语句,但只能对应一个finally子句,或是一个try-expect-finally复合语句
3,可以使用try-expect语句监测和处理异常,也可以添加一个可选的else子句处理没有监测到异常时的执行代码
4,finally 是不管有无错误,都会执行的代码。一般用来做清除工作
常见的错误类型
1,ValueError:传入无效的参数
2,ZeroDivisionError :除数为0(任何一个数值被零除都会引发此错误)
3,ModuleNotFoundError :找不到模块
4,TypeError : 对类型无效的操作
5,AssertionError : 断言失败
6,NameError :变量未声明或初始化
7,SyntaxError:python解释器语法错误(代码中有一个不正确的结构,改正之前程序无法运行)
8,IndexError:请求的索引超出范围
9,KeyError:请求一个不存在的字典关键字
10,FileNotFoundError:输入/输出错误(打开文件路径错误会引发此错误)
11,AttributeError:尝试访问未知的对象属性
下面一个是一个简单的异常处理的例子
num = input("请输入一个数字:")
res = 100 / int(num)
try:
res = 100 / int(num)
except: # try里面的语句报错了,执行except
# 你抓到了异常,你自己额外添加的处理
print("输入有误,请输入非0的数字!")
# 你处理完了之后,把错误又抛出给python解释器
raise
else: # try里面的语句没报错,执行else
print(res)
finally:
# 不管try里面有没有报错。最后一定会执行的代码。
print("我是一定要执行的收尾代码!")
如果知道会出现哪些错误,可以针对不同的错误做不同的处理
try:
res = 100 / int(num)
except ZeroDivisionError as e: # try里面的语句报错了
# 你抓到了异常,你自己额外添加的处理
print("输入有误!请输入非0的数字!")
print(e)
# 你处理完了之后,把错误又抛出给python解释器
raise
except ValueError as e:
# 抓到异常,额外添加的处理。这里没有 raise 表示不显示异常
print("输入有误!请输入数字类型!")
print(e)
except Exception as e:
print("其它未知错误")
print(e)
网友评论