文章目录
一、异常处理:try – except –
1.try – except –
程序不报错执行try语块,程序执行报错则执行except语块
2.基本应用
while True:
try:
s = input('>>>')
s = int(s) #输入字母等字符将不能转换为整型,报错,执行except语块
print(s)
except Exception as e:
s = 1
print(s)
#输出:
>>>5
5
>>>6
6
>>>sd
1
>>>fg
1
3.基本格式内容:
while True:
try:
pass
except KeyError as e:
print('访问字典中不存在的键')
except TypeError as e:
print('传入对象的数据类型与需求不符合')
except IndexError as e:
print('索引超出有值范围')
except Exception as e:
print('可以接受所有的错误类型')
else: #前方判别语句都未执行,将执行else语句
print("前方未接收到错误")
finally:
print("此条语句无论前方是否接收到出错,一定执行")
except 后加 python内置的错误类别,即可分别判断程序执行过程中发生的错误类型,做出相应的应对操作。
上述列出的错误类别有:
KeyError :访问字典中不存在的键
TypeError :传入对象的数据类型与需求不符合
IndexError :索引超出有值范围
Exception : 可以接受所有的错误类别
其他更多请自行了解…
4.主动触发异常
格式: raise + 错误类别 ( ‘ 错误信息 ’ )
try:
raise Exception('这错的就离谱...') #没有出错但是将执行下方对应错误接收语句
except Exception as e:
print(e)
#输出:
这错的就离谱...
4.1主动触发异常的实际运用举例:
while True:
def function():
flag = True
ret = input('>>>>')
if ret == '25':
flag = False
return flag
def function2():
try:
resault = function()
if resault == True:
raise Exception("程序执行成功")
else:
raise Exception('程序执行失败')
except Exception as e:
logger = e
print(logger) #此语句可以换成写入日志,方便后续查看程序执行过程中发生的错误信息
function2()
#输出:
>>>>5
程序执行成功
>>>>25
程序执行失败
在实际运用中,有些错误并不会阻断程序的执行,此时可以在开发过程中使用主动触发异常来记录操作过程中发生的异常错误
5.关键字 assert(条件判断)
r = 100
assert 1==1 #assert(断言) + 条件判断语句,条件判断不通过,则报错(可以捕获异常,一般不捕获异常)
print(r)