Python3笔记--异常处理

需求:当程序遇到问题时不结束,而是越过错误继续往下执行,增强程序可靠性

try....except....else--作用:用来检测try语句块中的错误,从而让except语句捕获错误信息并处理

格式:
try:
    语句t
except 错误码 as e:
    语句1
except 错误码 as e:
    语句2
....
except 错误码 as e:
    语句n
else:
    语句e

逻辑:
1、如果try“语句t”执行出现错误,会匹配第一个错误码,如果匹配上就执行对应“语句”
2、如果当try"语句t"执行出现错误,没有匹配的异常,错误将会被提交到上一层的try语句。或者程序的最上层
3、若try"语句t"执行没有错误,执行else下的"语句e"
4、一句Except中可以接收多个异常

 

例:

try:
    print("***")
except NameError as e:
    print("444")
else:
    print("666")
#***
#666


#常用
try:
    print(4/0)
except:
    print("程序出现异常")
#程序出现异常

 

try....except....finally--作用:无论语句try块内是否有错误都将执行finally,可以用于打开的文件的关闭,或断开与数据库的连接

格式:
try:
    语句t
except 错误码 as e:
    语句1
except 错误码 as e:
    语句2
....
except 错误码 as e:
    语句n
finally:
    语句e

例:

try:
    print(1/0)
except ZeroDivisionError as e:
    print("除数不能为零")
finally:
    print("必须执行到这里")

#除数不能为零
#必须执行到这里

(assert )断言,在错误出现前判断可能导致错误的因素

例:

def func5(num,div):
    assert (div!=0),"div不能为0"
    return num/div
print(func5(10,0))

#AssertionError: div不能为0

 

跨越多层调用

例:

def func1(num):
    print(1/num)
def func2(num):
    func1(num)
def main():
    func2(0)
try:
    main()
except:
    print("****")
#****

这里main调用了func2,func2调用了func1,func1出现了错误,这是只要main捕获到了就可以处理

 

posted @ 2019-04-07 23:36  byadmin  阅读(389)  评论(0)    收藏  举报