[oeasy]python068_异常处理之后做些什么_try语句的完全体_最终_finally

news2025/2/22 5:47:05

068_异常处理之后做些什么_finally

异常处理之后做些什么_try语句的完全体_最终_finally 回忆上次内容

  • 我们了解了 try 的细节

  • except 可以 捕获到异常

  • 但报错比较简单

添加图片注释,不超过 140 字(可选)

  • 游乐场里面的 报错

  • 更全 更丰富

  • 还告诉哪个文件、第几行

添加图片注释,不超过 140 字(可选)

  • 可以跟踪到 最详细 报错信息 吗?🤔

添加图片注释,不超过 140 字(可选)

报错信息

  • 可以输出完整的报错信息吗?

  • 包含文件和行号那种的详细信息

添加图片注释,不超过 140 字(可选)

  • 运行结果

添加图片注释,不超过 140 字(可选)

  • 告诉了我们

  • t.py 第1行

  • 发生了 NameError

询问ai

添加图片注释,不超过 140 字(可选)

修改

  • 导入

  • trackback模块

  • 获得 跟踪信息

import traceback try: a except: print("in except---------") traceback.print_exc() print("in except=========")

  • 运行结果

  • 不但保留了系统的报错

  • 还把错误位置也指出了

添加图片注释,不超过 140 字(可选)

  • 应该 如何理解 traceback中的

  • print_exc函数呢?

游乐场

  • traceback 是 模块(module)

  • import traceback

  • 引入 这个模块(module)

添加图片注释,不超过 140 字(可选)

  • traceback.print_exc

  • .(点)的意思 是 里面的

  • traceback 里面的 print_exc

  • 作用是输出异常信息

添加图片注释,不超过 140 字(可选)

  • try 语句当中

  • 除了 except 和 else 之外

  • 还有 其他子句 吗?

finally

  • try 之后分支

  • 要么 执行中 捕获到了异常

  • 立即停止 try中的部分

  • 跳入 对应的except 执行

  • 要么 try全部执行完

  • 也 没有捕获到异常

  • 执行 else 子句

添加图片注释,不超过 140 字(可选)

  • 无论是except 还是 else

  • 最后 总要执行finally 子句

finally

  • finally

  • 是一个收尾的语句

import traceback try: i = int("123") j = i / 0 except ValueError: print(ValueError) except NameError: print(NameError) except Exception as e: traceback.print_exc() else: print("Nothing Wrong") finally: print("At Last...finally...")

  • 结果

添加图片注释,不超过 140 字(可选)

finally的帮助 help("try")

  • 如果执行过程中

  • 还有 任何的异常 没有被处理

  • 那么就 把这个异常 临时存住

  • 等finally执行之后

  • 再抛出 这个异常

  • 如果遇到return break continue之类 强制跳转语句

  • 这个异常 就 被忽略了

添加图片注释,不超过 140 字(可选)

  • saved exception re-raised

  • 这如何理解?

最后再抛异常 try: a except ValueError: print(ValueError) else: print("Nothing Wrong") finally: print("finally----------")

  • 运行结果

添加图片注释,不超过 140 字(可选)

  • except 子句 处理不来 NameError

  • 把这个 Error 先存着

  • 跳过else

  • 进入finally

  • finally 执行后

  • 再把 这个Error

  • 直接 抛给 系统

  • 再看一个例子

理解finally

  • try里面

  • 第2行 出现错误 abc无法转化为整型变量

  • ValueError

  • 不执行后面的

  • d = i / 0

  • 直接 跳到except

try: i = int("abc") d = i / 0 except ZeroDivisionError: print(ZeroDivisionError) else: print("Nothing Wrong") finally: print("At last...")

  • except中

  • 处理不来 ValueError

  • 于是ValueError就存着

  • 由于出现了Error

  • 已经进入了except部分

  • 无法进入else

  • 最后进入finally执行

  • 输出了At Last

  • 执行完finally语句块

  • 才把这个ValueError最后抛出来

添加图片注释,不超过 140 字(可选)

  • 这是finally的执行逻辑

  • 最终 收尾

  • 有什么实践中的例子吗?

应用场景

  • 下图是

  • python连接数据库的类库

  • psycopg

添加图片注释,不超过 140 字(可选)

  • try的具体应用

  • 如果都成功 就 提交(commit)

  • 如果失败 就 回滚(rollback)

  • 无论成功失败 最后都要 断开连接

  • finally 就像python 中的

  • Guido一样

  • 最终决策

仁慈的独裁者BDFL

  • 彻底的仁慈

  • 意味着 没有主见和行动力下降

  • 彻底的独裁

  • 则会 失去广泛的帮助

添加图片注释,不超过 140 字(可选)

  • 仁慈和独裁

  • 像是 矛盾的两面

  • 但是

  • Guido却 很好地 平衡了两者

  • 除了 Guido之外

  • 很多 开源项目的 老大

  • 也有 类似的称号

添加图片注释,不超过 140 字(可选)

  • Guido是

  • 如何成长的呢?

扩展视野

  • Guido 利用假期去

  • 当时 it的 潮头

  • 美国硅谷

  • 做 一些WorkShop实践课程

  • 推广python

添加图片注释,不超过 140 字(可选)

  • 很早 接触到了

  • 互联网的 发展趋势

互联网

  • Guido做了

  • 一个浏览器grail

添加图片注释,不超过 140 字(可选)

网络集聚

  • 网络的能量越来大

  • 这 为python的发展 做了很好的准备

  • 媒介

  • 从报纸、杂志、电视

  • 发展到邮件、论坛和浏览器

添加图片注释,不超过 140 字(可选)

  • 有人 就有 应用

  • 有应用 就更有 人

  • 于是会形成 正反馈

  • 有了社区 就会有更多的人 加入社区

  • 其实学编程 也是一样

  • 越熟练 就会越自信

  • 越自信 也就会越熟练

Guido 作为 finally

  • 人很多 之后

  • 众说纷纭

  • 往往需要

  • 一个最终的决策

添加图片注释,不超过 140 字(可选)

  • finally

  • Guido 完成决策

  • 决策并不是为了显示

  • 自己权威的位置

  • 所有者 的权限

  • 那样会 让开发者远离 python项目

  • 决策 是因为

  • Guido 比任何人 都更 了解项目

  • 对于决策 都能做出 合理的解释

  • 水瓶座出 生的Guido

  • 注重 社群的力量

水瓶座时代

  • 2023年

  • 冥王星 将从摩羯座 进入 水瓶座

  • 将迎来 20年左右的 转折窗口

  • 我们人类社会 开始转变

添加图片注释,不超过 140 字(可选)

  • 地球 迎来了 水瓶座时代

  1. 个人更着重于

  2. 自身内在精神灵性方面的 成长

  3. 不再执着于 外在物质欲望的 享受

  4. 水瓶座象征的是集体、群众和社区

  5. 意味着乐于喜悦服务他人

  6. 我们的 人际关系、生活方式 将发生重大变化

  7. 人类的集体意识会逐渐提升

  8. 可以更容易 连结智慧本源 以及 更高维度的世界

  9. 科学技术、人道主义及公正平等

  10. 模式创新、理想社会

  11. 将会是全球议题中的 重中之重

  12. 地球环境趋于恶化,气候多变

  13. 全球变暖,能源安全变得极为重要

  14. 人类应用高科技对空气、水以及土壤进一步改造会变得困难

  15. 并且加剧了 全球环境恶化

总结

  • 我们了解了 try 的完全体

  • try

  • 尝试运行

  • except

  • 发现异常时运行的代码块

  • else

  • 没有发现异常时运行的代码块

  • finally

  • 无论是否发现异常最终都要运行的代码块

添加图片注释,不超过 140 字(可选)

  • 为什么print函数

  • 不用声明和导入?🤔

  • 直接就能用呢?🤔

  • 我们下次再说!👋

  • 蓝桥->AI 编程-oeasy 教您玩转 python_Python - 蓝桥云课

  • github->https://github.com/overmind1980/oeasy-python-tutorial

  • gitee->oeasy教您玩转python教程: 面向零基础初学者的简明易懂的 Python3 入门课程,对没有编程经验的同学也非常友好。在vim下从浅入深,逐步学习。从基础入门学习到爬虫。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2303235.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PySide6学习专栏(四):用多线程完成复杂计算任务

如果计程序中要处理一个非常庞大的数据集中的数据,且数据处理计算很复杂,造成数据处理占用大量时间和CPU资源,如果不用多线程,仅在主进程中来处理数据,将会使整个程序卡死,必须采用多线程来处理这些数据是唯…

神经网络八股(1)

1.什么是有监督学习,无监督学习 有监督学习是带有标签的,无监督学习是没有标签的,简单来说就是有监督学习的输入输出都是固定的,已知的,无监督学习输入是已知的,输出是不固定的,无监督学习是通…

深度学习每周学习总结Y1(Yolov5 调用官方权重进行检测 )

🍨 本文为🔗365天深度学习训练营 中的学习记录博客Y1中的内容 🍖 原作者:K同学啊 | 接辅导、项目定制 ** 注意该训练营出现故意不退押金,恶意揣测偷懒用假的结果冒充真实打卡记录,在提出能够拿到视频录像…

计算机视觉基础|从 OpenCV 到频域分析

一、引言 在当今数字化时代,图像处理已渗透到我们生活的方方面面,从日常使用的智能手机拍照美化,到医学领域的精准诊断,再到自动驾驶中的环境感知,其重要性不言而喻。在图像处理领域中,OpenCV 和频域分析&…

74. 搜索二维矩阵(LeetCode 热题 100)

题目来源; 74. 搜索二维矩阵 - 力扣(LeetCode) 题目内容: 给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增顺序排列。 每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target &am…

netcore libreoffice word转pdf中文乱码

一、效果 解决: cd /usr/share/fonts/ mkdir zhFont cd zhFont #windows系统C:\Windows\Fonts 中复制/usr/share/fonts/zhFont sudo apt update sudo apt install xfonts-utils mkfontscale mkfontdir #刷新字体缓存 fc-cache -fv #查看已安装的字体列表 fc-list :…

qt-C++笔记之创建和初始化 `QGraphicsScene` 和 `QGraphicsView` 并关联视图和场景的方法

qt-C笔记之创建和初始化 QGraphicsScene 和 QGraphicsView 并关联视图和场景的方法 code review! 参考笔记 1.qt-C笔记之创建和初始化 QGraphicsScene 和 QGraphicsView 并关联视图和场景的方法 2.qt-C笔记之QGraphicsScene和 QGraphicsView中setScene、通过scene得到view、通过…

OpenGL 01--构建GLFW、创建第一个工程、配置GLAD

一、OpenGL介绍 一般它被认为是一个API(Application Programming Interface, 应用程序编程接口),包含了一系列可以操作图形、图像的函数。然而,OpenGL本身并不是一个API,它仅仅是一个由Khronos组织制定并维护的规范(Specification)。 OpenGL规…

【时时三省】(C语言基础)求多项式1-1/2+1/3-1/4+...+1/99-1/100的值 用C语言表示

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 示例: 输出结果是 0.688172

kafka-集群缩容

一. 简述: 当业务增加时,服务瓶颈,我们需要进行扩容。当业务量下降时,为成本考虑。自然也会涉及到缩容。假设集群有 15 台机器,预计缩到 10 台机器,那么需要做 5 次缩容操作,每次将一个节点下线…

Ubuntu22.04 - etcd的安装和使用

目录 介绍安装Etcd安装etcd的客户端使用 介绍 Etcd 是一个 golang 编写的分布式、高可用的一致性键值存储系统,用于配置共享和服务发现等。它使用 Raft 一致性算法来保持集群数据的一致性,且客户端通过长连接watch 功能,能够及时收到数据变化…

排查JVM的一些命令

查看JVM相关信息的方法 环境&#xff1a; Win10, jdk17 查看端口的Pid netstat -ano | findstr <端口号>列出当前运行的JVM进程 ## 用于输出JVM中运行的进程状态信息。通过jps&#xff0c;可以快速获取Java进程的PID&#xff08;进程标识符&#xff09;&#xff0c; …

Arduino 第十六章:pir红外人体传感器练习

Arduino 第十六章&#xff1a;PIR 传感器练习 一、引言 在 Arduino 的众多有趣项目中&#xff0c;传感器的应用是非常重要的一部分。今天我们要学习的主角是 PIR&#xff08;被动红外&#xff09;传感器。PIR 传感器能够检测人体发出的红外线&#xff0c;常用于安防系统、自动…

自动化之ansible(二)

一、ansible中playbook&#xff08;剧本&#xff09; 官方文档&#xff1a; Ansible playbooks — Ansible Community Documentation 1、playbook的基本结构 一个基本的playbook由以下几个主要部分组成 hosts: 定义要执行任务的主机组或主机。 become: 是否需要使用超级用户…

QSNCTF-WEB做题记录

第一题&#xff0c;文章管理系统 来自 <天狩CTF竞赛平台> 描述&#xff1a;这是我们的文章管理系统&#xff0c;快来看看有什么漏洞可以拿到FLAG吧&#xff1f;注意&#xff1a;可能有个假FLAG哦 1&#xff0c;首先观察题目网站的结构和特征 这个一个文件管理系统&#x…

Ruoyi-Vue 3.8.7集成积木报表JmReport和积木大屏JimuBI

Ruoyi-Vue 3.8.7集成积木报表JmReport和积木大屏JimuBI 一、版本 RuoYi-Vue版本&#xff1a;v3.8.7 JMreport报表版本&#xff1a; v1.9.4 JimuBI大屏版本&#xff1a;V1.9.4 二、数据库 积木数据库sql 下载后&#xff0c;使用数据库管理工具执行sql脚本&#xff0c;将需…

亲测可用,IDEA中使用满血版DeepSeek R1!支持深度思考!免费!免配置!

作者&#xff1a;程序员 Hollis 之前介绍过在IDEA中使用DeepSeek的方案&#xff0c;但是很多人表示还是用的不够爽&#xff0c;比如用CodeChat的方案&#xff0c;只支持V3版本&#xff0c;不支持带推理的R1。想要配置R1的话有特别的麻烦。 那么&#xff0c;今天&#xff0c;给…

jvm中各个参数的理解

MEMORY - MANAGERS 定义 MEMORY - MANAGERS即内存管理器&#xff0c;它是操作系统或软件系统中负责管理计算机内存资源的组件。从本质上来说&#xff0c;它是一种软件机制&#xff0c;旨在协调计算机系统中内存的分配、使用和回收等操作&#xff0c;确保系统能够高效、稳定地…

【队列】循环队列(Circular Queue)详解

文章目录 一、循环队列简介二、循环队列的判空和判满三、循环队列的实现leetcode 622. 设计循环队列 一、循环队列简介 在实际开发中&#xff0c;队列是一种常用的数据结构&#xff0c;而循环队列&#xff08;Circular Queue&#xff09;则一般是一种基于数组实现的队列&#x…

DeepSeek掀起推理服务器新风暴,AI应用迎来变革转折点?

AI 浪潮下&#xff0c;推理服务器崭露头角 在科技飞速发展的当下&#xff0c;AI 是耀眼明星&#xff0c;席卷各行业&#xff0c;深刻改变生活与工作模式&#xff0c;从语音助手到医疗诊断、金融风险预测&#xff0c;AI 无处不在。其发展分数据收集整理、模型训练、推理应用三个…