当代码出现异常后底下代码都不会被执行了,也就是程序崩溃了。当然能避免异常的话尽量避免但是有的时候这个是没有办法避免的。
异常处理
(注:异常处理是从上往下处理,所以编写代码时要注意)
语法
try:
可能出现异常的代码
except:
如果右异常执行的代码
finally:
无论是否存在异常都会被执行的代码
#finally可写可不写,try和except必须一起出现
例子
def func():
try:
n1 = int(input('输入第一个数字'))
n2 = int(input('输入第一个数字'))
per = input('输入运算符号')
if per =="+":
result = n1+n2
elif per =="-":
result = n1-n2
elif per =="*":
result = n1*n2
elif per =="/":
result = n1/n2
#选不同的错误类型会出现不同的解决方法
except ZeroDivisionError:
print('除数不能为零')
except ValueError:
print('请输入数字')
func()
上述例子中出现了两个错误,但是实际开发中可能出现多种你无法相像的错误这时就要用到except的一种情况
例子
try:
l=[]
l.remove()
except Exception as err:
print('出错了',err)
结果
例子
当我们在进行文件操作时,最后都需要释放文件流,所以都需要close()
stream = None
try:
#这个stream在try中,是局部变量,finally不能用
stream = open(r'D:/桌面/test','r')
except Exception as err:
print('出错了',err)
finally:
if stream:
stream.close()
结果
注:如果代码中有finally,前面return不会真的return出去。只有执行了finally后才会退出
抛出异常
例子
使用raise关键字,相当于自定义一个异常
def register():
user = input('请输入')
if len(user)<6:
raise Exception('必须六位以上')
else:
print('输入用户名',user)
try:
register()
except Exception as err:
print(err)
print('注册失败')
else:
print('注册成功')
结果
不嫌弃的点点关注,点点赞 ଘ(੭ˊᵕˋ)੭* ੈ✩‧₊˚