当代码出现异常后底下代码都不会被执行了,也就是程序崩溃了。当然能避免异常的话尽量避免但是有的时候这个是没有办法避免的。
异常处理
(注:异常处理是从上往下处理,所以编写代码时要注意)
语法
try:可能出现异常的代码
except:如果右异常执行的代码
finally:无论是否存在异常都会被执行的代码
#finally可写可不写,try和except必须一起出现
例子
def func():try:n1 = int(input('输入第一个数字'))n2 = int(input('输入第一个数字'))per = input('输入运算符号')if per =="+":result = n1+n2elif per =="-":result = n1-n2elif per =="*":result = n1*n2elif 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('注册成功')
结果
不嫌弃的点点关注,点点赞 ଘ(੭ˊᵕˋ)੭* ੈ✩‧₊˚