异常处理
Posted qq752059037
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异常处理相关的知识,希望对你有一定的参考价值。
语法错误:
在程序执行前就规避掉,不应该留到程序中来进行异常处理
异常:
在编译阶段没问题,在执行阶段才报错
异常出现后的现象:程序停止执行
多分支
l = [‘登陆‘,‘注册‘] try: num = int(input(‘num : ‘)) print(l[num - 1]) except ValueError: print(‘输入了错误的内容‘) except IndexError: print(‘您输入的内容不在范围内‘) print(‘其他内容‘)
也可以写到一起
l = [‘登陆‘,‘注册‘] try: num = int(input(‘num : ‘)) print(l[num - 1]) #即便是放在try语句中的内容,在遇到报错之后也会中断这段语句的执行
except (ValueError,IndexError): #写到一起 print(‘输入了错误的内容‘) print(‘其他内容‘)
万能异常
except Exception
无论什么错误 它都能接收,一般放在最后面 不然把普通报错都接收了
try: l = [] l[3] # IndexError import Index # ModuleNotFoundError open(‘aaaaaa‘) # FileNotFoundError 1/0 # ZeroDivisionError dic = {} dic[‘k‘] # KeyError except Exception: print(‘异常啦‘)
as语法
把报错原因赋值给一个变量
try: l = [] l[3] # IndexError import Index # ModuleNotFoundError open(‘aaaaaa‘) # FileNotFoundError 1/0 # ZeroDivisionError dic = {} dic[‘k‘] # KeyError except Exception as e: print(e) #list index out of range
多分支+万能异常
try: 可能发生异常的代码 三行 except 错误类型: 处理的代码 try: 可能发生异常的代码 三行 except 错误类型1: 处理的代码1 except 错误类型2: 处理的代码2 try: 可能发生异常的代码 三行 except (错误类型1,错误类型2): 处理的代码 try: 可能发生异常的代码 三行 except (错误类型1,错误类型2): 处理的代码 except Exception as e: print(e)
异常处理中的其他逻辑
else
try: pass# 发邮件的逻辑 except ValueError: print(‘触发了一个name error‘) else: pass 汇报这段代码顺利的执行了 : 发短信通知,记录到文件中
finally
无论如何都要执行的函数 不会因为报错 或者return停止
一般用于收尾工作,打开了一个文件,占用了一个网络资源,打开了一个和数据库的链接 然后关闭
try: name = 123 except NameError: print(1111111) finally: #并不会因为报错就会停止 print(‘执行我啦‘)
def func(): try: f = open(‘content‘) return f.read() finally: #并不会因为return就会停止 f.close() print(‘closed‘) func()
以上是关于异常处理的主要内容,如果未能解决你的问题,请参考以下文章
java.util.MissingResourceException: Can't find bundle for base name init, locale zh_CN问题的处理(代码片段