067_如何处理各种可能的异常_try_except_Error0 播放 · 0 赞同视频
如何处理各种可能的异常_try_except_Error 回忆上次内容
我们了解了 try 的细节
try
尝试运行
except
发现异常时运行的代码块
else
没有发现异常时运行的代码块
注意!
都要有英文半角的冒号
子句都要通过 4 个字符的缩进控制范围
错误类型太多了
有通用错误类型 吗?
能兜住所有错误 那种?
文档提示
文档说 不带参数就行
各种错误 try: a i = int("123") j = i / 0 except ValueError: print(ValueError) except ZeroDivisionError: print(ZeroDivisionError) except: print("Something is Wrong!") else: print("Nothing Wrong")
最后的except
包括 NameError
包含了 所有错误
一网不捞鱼
一网不捞鱼
二网不捞鱼
三网捞个小尾巴尾巴尾巴尾巴尾巴尾巴……鱼
第三网
是通用模式except
可以捕获到所有的异常
一网打尽
如果这句except排在前面的话
后面 这些异常处理方法
会 被屏蔽吗?
尝试调换位置
:9,10m4
将从第9句到第10句
移动到第4句后面
尝试运行
运行结果
要 求通用异常处理方式
except的 位置
必须 是最后一个
通用的处理 得保底
可以让这个except的意义
更明确一些吗?
到底是什么错误?
明确含义 try: a i = int("123") j = i / 0 except ValueError: print(ValueError) except ZeroDivisionError: print(ZeroDivisionError) except Exception: print(Exception) else: print("Nothing Wrong")
这样
会将 错误信息
输出 吗?
输出结果
输出了 一个通用的错误
Exception类
并不知道 错误类型
报错 能再明确点儿吗?
修改代码 try: a i = int("123") j = i / 0 except ValueError: print(ValueError) except ZeroDivisionError: print(ZeroDivisionError) except Exception as e: print(e) else: print("Nothing Wrong")
尝试将异常作为变量
并输出报错信息
尝试调试
执行第2句 遇到不认识的的a
直接报错
跳过try中 后面的语句
直接找 处理方式
找到通用处理方式
前两个处理方式
都不对
找到第三个
通用的异常处理方式
如果 前面找到了
具体错误类型
还会继续 寻找
最后的 通用异常处理 吗?
捕获异常 try: a i = int("123") j = i / 0 except NameError: print(NameError) except ValueError: print(ValueError) except ZeroDivisionError: print(ZeroDivisionError) except Exception as e: print(e) else: print("Nothing Wrong")
在运行过程中
出现了NameError
在 第一个 尝试捕获异常的位置
捕获到了异常
进入except NameError子句
完成 处理过程
输出NameError
跳过后面所有 except
跳过else
执行完毕
异常变量会如何呢?
del
文档说会给删了
except 这个词 怎么理解呢?
except
except
ex 向外
cept 拿
向外拿
挑出去
排除
除了...之外
capture
capture
cept 拿
拿到
抓到
捕获
captive
captive
cept 拿
被拿到的
俘虏
accept
accept
ac 向里面
cept 拿
往里拿
接受
concept
concept
con 一起
cept 拿
一起拿
把想法放在一起拿起来
整合想法
构思 概念
conceive
conceive
con 一起
cept 拿
一起拿
构思,设想
怀孕
perceive
perceive
per 完全
cept 拿
完全拿捏
理解
认为
deceive
deceive
de 向下
cept 拿
向下拿
借助信息的不对等 去拿
欺骗
receive
receive
re 再次
cept 拿
再次拿回来
收到
cept 总结
总结
我们了解了 try 的细节
except 可以 捕获到异常
但报错比较简单
游乐场里面的 报错
更全 更丰富
还告诉哪个文件、第几行
可以跟踪到最详细报错信息 吗?🤔
我们下次再说!👋
蓝桥->https://www.lanqiao.cn/courses/3584
github->https://github.com/overmind1980/oeasy-python-tutorial
gitee->https://gitee.com/overmind1980/oeasypython