Python3笔记--异常处理

it2024-10-18  19

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

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捕获到了就可以处理

 

转载于:https://www.cnblogs.com/byadmin/articles/foundation-5.html

最新回复(0)