码迷,mamicode.com
首页 > 其他好文 > 详细

异常处理

时间:2018-09-11 22:56:40      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:如何   UNC   value   one   except   key   range   close   otf   

语法错误:

  在程序执行前就规避掉,不应该留到程序中来进行异常处理

异常:

  在编译阶段没问题,在执行阶段才报错

 

异常出现后的现象:程序停止执行

 

多分支

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()

 

异常处理

标签:如何   UNC   value   one   except   key   range   close   otf   

原文地址:https://www.cnblogs.com/qq752059037/p/9630832.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!