else 分支(没有错误的时候才会执行)
应用环境
1 try : 2 print('aaa') #给某某某发邮件 3 ame 4 except NameError: #网络不稳定 5 print('name error') #重新发一遍 6 except IndexError: #邮箱地址错误 7 print('index error') #算了 8 else: 9 print('else') #发送成功
finally 无论如何都会执行(finally非常有利于操作系统资源的回收)
1 def func(): 2 f=open('file') 3 try: 4 while True: 5 for line in f: 6 if line.startswith('a'): 7 return line 8 except: 9 print('异常处理') #及时有异常也会先执行finally中的代码 10 finally: 11 f.close() #及时return也会先执行finally中的代码
1 try: 2 f=open('www','w') 3 f.read() 4 finally: #及时遇到报错,也会先执行 finally中的代码然后再报错 5 f.close() 6 print('文件已经关闭了')
异常处理的几种情况
1 try...except... 2 try....except...else 3 try...finally 4 try...except...finally 5 try...except...else...fianlly
主动抛出异常:是给其他开发者用的
1 raise ValueError 2 raise ValueError('你写的不对')
断言asert
1 assert 1==2#只能接受一个布尔值False 2 assert 1==1#true 3 assert 1==int(input('请输入1')) 4 print('继续')