066_如何捕获多个异常_try_否则_else_exception0 播放 · 0 赞同视频
如何捕获多个异常_try_否则_else_exception
回忆上次内容
-
try着 尝试着 运行
-
一旦发现了 错误
-
就 终止 try中的执行
-
半角冒号
-
缩进
-
错误信息输出
-
有错 就报
-
不要 忽略、隐瞒
-
否则 找不到 出错位置
-
究竟 应该如何理解
-
try...except...呢?????
-
如果try中
-
发现了异常
-
就立刻 从发现错误的 位置
-
跳出来
-
如果try中
-
从始至终没有发现异常
-
在执行完try中的所有内容 之后
-
运行 else 部分
-
这里的参数"abc"
-
是无法转化为整型数字的
-
会抛出ValueError
-
跳出try子句
try: i = int("abc") except ValueError: print("Exception is found!") else: print("Nothing Wrong")
-
然后跳过else子句
-
那什么时候
-
进入else子句呢?
try: i = int("123") except ValueError: print("Exception is found!") else: print("Nothing Wrong")
-
字符串"123"
-
是 可以转化为整型数字的
-
整个try部分
-
都执行完毕
-
没有抛出任何异常
-
直接进入
-
else子句
-
执行输出 Nothing Wrong!
-
如果不try
-
会抛出ZeroDivisionError
没捉到
try: i = int("123") j = i / 0 except ValueError: print("Exception is found!") else: print("Nothing Wrong")
-
except 不同的 Error
-
会 捕获到 不同类型的 错误
-
进行 不同 方式的 处理
try: i = int("123") j = i / 0 print("this line never excute! ") except ValueError: print(ValueError) except ZeroDivisionError: print(ZeroDivisionError) else: print("Nothing Wrong")
-
尝试捕获 前两种类型的Error
-
ValueError
-
ZeroDivisionError
-
执行第3句的时候
-
抛出除数不能为零错误
-
进行 错误排查
-
j = i / 0
-
错误类型为 除数不能为零
-
ZeroDivisionError
-
第4行 except ValueError
-
类型不对
-
跳过
-
前面的异常处理
-
会短路后面的异常处理
-
只处理一次就行了
-
为什么 要弄这么多
-
错误排查 呢?
-
是 没事找事 吗??
-
预测 可能出现的异常
-
并且 有预案 进行处理
-
运行时 才能 安稳放心
try: a i = int("123") j = i / 0 except ValueError: print(ValueError) except ZeroDivisionError: print(ZeroDivisionError) else: print("Nothing Wrong")
-
给定的两种 Error类型
-
都处理不了 NameError
-
遍历了 所有处理方式之后
-
Error 依然 无法处理
-
{BANNED}最佳后 都处理不了
-
相当于 没处理
-
把 NameError 上交
-
抛给系统
-
告知用户
-
注意!
-
都要有英文半角的冒号
-
子句都要通过 4 个字符的缩进控制范围
-
错误类型太多了
-
有 通用错误类型 吗?
-
能兜住 所有错误 那种?
-
我们下次再说!????
-
蓝桥->
-
github->
-
gitee->