show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 我们了解了 try 的完全体
- try
- 尝试运行
- except
- 发现异常时运行的代码块
- else
- 没有发现异常时运行的代码块
- try
- 注意!
- 都要有英文半角的冒号
- 都要通过 4 个字符的缩进控制范围
- 最后还有个finally
- 这个finally如何理解呢?
- finally
- 是一个收尾的语句
try:
i = int("123")
j = i / 0
except ValueError:
print(ValueError)
except NameError:
print(NameError)
except Exception as e:
print(e)
else:
print("Nothing Wrong")
finally:
print("At Last...finally...")
- try 之后分支
- 要么 捕获到了异常
- 执行 except 子句
- 要么 没有捕获到异常
- 执行 else 子句
- 要么 捕获到了异常
- 无论是except 还是 else
- 最后 总要执行finally
- 如果执行过程中
- 还有任何的异常
- 但是这个异常没有被处理
- 那么就把这个异常先存着
- 等待finally执行之后
- 再抛出这个异常
- 如果遇到return break continue之类强制跳转语句
- 这个异常就被忽略了
- 还有任何的异常
- 这如何理解?
try:
a
except ValueError:
print(ValueError)
else:
print("Nothing Wrong")
finally:
print("finally----------")
- 运行结果
- 错误所有子句都处理不来
- 跳过else
- 进入finally
- 最后再把错误直接抛给系统
- 再看一个例子
- try里面第二行出现错误
- ValueError
- 不执行后面的d = i / 0
- 跳到except
- except中
- 没有ValueError的处理办法
- ValueError没有被处理
- 于是ValueError就存着
- 由于出现了Error
- 已经进入了except
- 无法进入else
- 最后进入finally执行
- 输出了At Last
- 执行外finally语句块
- 才把这个ValueError最后抛出来
- 这是finally的执行逻辑
- 就像python语言
- 有一个主要的决策者Guido一样
- 彻底的仁慈
- 意味着 没有主见和行动力下降
- 彻底的独裁
- 则会 失去广泛的帮助
- 仁慈和独裁
- 像是矛盾的两面
- 但是
- Guido却很好地平衡了两者
- 除了Guido之外
- 很多开源项目的老大
- 也有类似的称号
- 很多开源项目的老大
- Guido是如何成长的呢?
- Guido 利用假期去美国做一些WorkShop实践课程
- 美国硅谷是当时it的潮头
- 很早接触到了
- 互联网的发展趋势
- Guido做了一个浏览器grail
- 水瓶座出生的Guido
- 注重社群的力量
- 2023年冥王星将从摩羯座进入水瓶座
- 将迎来20年左右的转折窗口
- 我们人类社会开始彻底地颠覆和转变
- 地球也迎来了水瓶座时代
- 个人更着重于自身内在精神灵性方面的成长,不再执着于外在物质欲望的享受
- 水瓶座象征的是集体、群众和社区,意味着乐于喜悦服务他人,我们的人际关系、生活方式将发生重大变化
- 人类的集体意识会逐渐提升,可以更容易连结智慧本源以及更高维度的世界
- 科学技术、人道主义及公正平等,模式创新、理想社会将会是全球议题中的重中之重
- 地球环境趋于恶化,气候多变。全球变暖,能源安全变得极为重要,人类应用高科技对空气、水以及土壤进一步改造会变得困难,并且加剧了全球环境恶化的自然过程
- 网络的能量越来大
- 这为python的发展做了很好的准备
- 媒介
- 从报纸、杂志、电视
- 发展到邮件、论坛和浏览器
- 有人 就有 应用
- 有应用 就更有 人
- 于是会形成 正反馈
- 有了社区 就会有更多的人 加入社区
- 其实学编程 也是一样
- 越熟练 就会越自信
- 越自信 也就会越熟练
- 人很多 之后
- 众说纷纭
- 往往需要一个最终的决策
- finally
- Guido 完成决策
- 决策并不是为了显示
- 自己权威的位置
- 所有者 的权限
- 那样会 让开发者远离 python项目
- 决策并不是为了显示
- Guido 完成决策
- 决策是因为 Guido 比任何人都了解项目
- 对于决策 都能做出合理的解释
- 我们了解了 try 的完全体
- try
- 尝试运行
- except
- 发现异常时运行的代码块
- else
- 没有发现异常时运行的代码块
- finally
- 无论是否发现异常最终都要运行的代码块
- try
- 上图就是python连接数据库的类库psycopg中
- try的具体应用
- 如果成功就提交commit
- 如果失败就回滚rollback
- 无论成功失败都要断开连接
- try的具体应用
- python是如何引入外部类库的呢?🤔
- 我们下次再说!👋