什么是异常? 异常处理的三个特征:
为何处理异常? 如何处理异常? if 1>3 # if 语句后缺少冒号 print("run...") l=['a','b'] # 超出索引范围 l[2] int('abc') # str 不能转为 int 类型 dic={'name':'egon'} dic['age'] # 查找不存在的key
2,逻辑上的异常 逻辑错误类型 # TypeError:数字类型无法与字符串类型相加 1 ’2’ # ValueError:当字符串包含有非数字的值时,无法转成int类型 num=input(">>: ") #输入hello int(num) # NameError:引用了一个不存在的名字x x # IndexError:索引超出列表的限制 l=['egon','aa'] l[3] # KeyError:引用了一个不存在的key dic={'name':'egon'} dic['age'] # AttributeError:引用的属性不存在 class Foo: pass Foo.x # ZeroDivisionError:除数不能为0 1/0 捕获异常的语法: try: 有可能会抛出异常的代码 子代码1 子代码2 except 异常类型1 as e: pass except 异常类型2 as e: pass else: 如果被检测的子代码块没有异常发生,则会执行else的子代码 finally: 无论被检测的子代码块有无异常发生,都会执行finally的子代码 print('start...') try: print('1111111111') l=['aaa','bbbb'] l[3] # 抛出异常IndexError,该行代码同级别的后续代码不会运行 print('2222222222') xxx except IndexError as e: print('异常的信息: ',e) print('end....') ############ start... 1111111111 异常的信息: list index out of range end.... except 可以判断多个异常 print('start...') try: print('1111111111') l=['aaa','bbbb'] l[3] print('2222222222') xxx except IndexError as e: print('异常的信息: ',e) except NameError as e: print('异常的信息: ',e) print('end....') ########### start... 1111111111 异常的信息: list index out of range end.... Process finished with exit code 0 万能异常: print('start...') try: l = ['aaa', 'bbbb'] dic = {'a': 1} dic['aaa'] except Exception as e: # 万能异常 print('所有异常都可以匹配的到',e) print('end....') #######################3 start... 所有异常都可以匹配的到 'aaa' end.... else不能单独与try配合使用,必须要搭配except print('start...') try: print('1111111111') print('2222222222') print('33333333') except Exception as e: # 万能异常 print('所有异常都可以匹配的到') else: print('====>') print('end....') ################ start... 1111111111 2222222222 33333333 ====> end.... finally可以单独与try配合使用 print('start...') # try: print('1111111111') l = ['aaa', 'bbbb'] l[3] print('2222222222') xxx print('33333333') dic = {'a': 1} dic['aaa'] finally: # 不处理异常,无论是否发生异常都会执行finally的子代码 print('====》》》》》应该把被检测代码中回收系统资源的代码放到这里') print('end....') ###################### start... 1111111111 ====》》》》》应该把被检测代码中回收系统资源的代码放到这里 来源:https://www./content-4-677551.html |
|