# -*- coding: utf-8 -*- # author:wyatt # @time:2021/9/16 23:39 # from pprint import pprint # pprint() # 可以格式化打印,便于查看数据 """ 异常处理 作用: 1.尽量让程序正常运行 2.尽早发现问题 """ mlist = [5, 6, 7] """ IndexError: list index out of range 索引异常 """ # IndexError: list index out of range # print(mlist[100]) # 当异常被触发后,不会再往下运行了 """ NameError: name 'qa' is not defined """ # print(qa) age = -3 if age > 18: name = 'yuz' elif age > 0: name = 'v' else: # 不写else时,程序不知道当else时name的情况,变量未定义 name = '1' # 使用一个变量时确保它定义了 # print(name) """ SyntaxError: unmatched ')' 语法错误 """ # print("aaa")) """ KeyError """ c = {"name": "yuze"} # print(c["age"]) """ ValueError """ # print(int('abc')) """ 如果出现异常如何处理? 1.首先,异常在python一般会出现提示 2.分析异常提示 3.会提示哪一行,哪个文件有问题 4.再把异常类型,信息,复制出来,搜索 """ a = [1, 2, 3] index = 1 try: # 你觉得会出现问题的代码 value = a[index] 1 / 0 print("没异常") # 当try 子句正常执行完成,不会有捕获 # except Exception as e: # 万能异常类型,可以捕获所有的异常,不要轻易使用 # 写出现异常时,会进行的操作,捕获了异常,可以继续往下执行代码 except IndexError as e: print(f"index索引出现问题,请修复。:{e}") except ZeroDivisionError as e: # 只会捕捉其中一个异常 print(f"计算错误:{e}") except Exception as e: print("前面的都捕获不到") print("continue") try: 1 / 0 except: print("异常") finally: print("无论如何都会执行的代码")