python 异常处理

孤街醉人 提交于 2020-02-05 21:28:27
''''''#print(3 / 0)#需求:当程序遇到问题时不让程序结束,而越过错误继续向下执行'''try……except……else格式:try:    语句texcept 错误码 as e:    语句1except 错误码 as e:    语句2……except 错误码 as e:    语句nelse:    语句e注意:else语句可有可无作用:用来检测try语句块中的错误,从而让except语句捕获错误信息并处理逻辑:当程序执行到try-except-else语句时1、如果当try“语句t”执行出现错误,会匹配第一个错误码,如果匹配上就执行对应"语句"2、如果当try“语句t”执行出现错误,没有匹配的异常,错误将会被提交到上一层的try语句。或者到程序的最上层3、如果当try“语句t”执行没有出现错误,执行else下的“语句e”(你得有)'''try:    print(3 / 1)except NameError as e:    print("没有该变量")except ZeroDivisionError as e:    print("除数为0了")else:    print("代码没有问题")print("*************")#使用except而不使用任何的错误类型try:    #print(4 / 0)    print(num)except:    print("程序出现了异常")#使用except带着多种异常try:    print(5 / 0)except (NameError, ZeroDivisionError):    print("出现了NameError或ZeroDivisionError")#特殊#1、错误其实是class(类),所有的错误都继承自BaseException,所以在捕获的时候,它捕获了该类型的错误,还把子类一网打尽try:    print(5 / 0)except BaseException as e:    print("异常1")except ZeroDivisionError as e:    print("异常2")#2、跨越多层调用,main调用了func2,func2调用了func1,func1出现了错误,这是只要main捕获到了就可以处理def func1(num):    print(1 / num)def func2(num):    func1(num)def main():    func2(0)try:    main()except ZeroDivisionError as e:    print("****")
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!