# -*- 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("无论如何都会执行的代码")

 

posted on 2021-09-17 00:52  熊猫星人  阅读(192)  评论(0编辑  收藏  举报