[oeasy]python068_异常处理之后做些什么_try语句的完全体_最终_finally
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 字(可选)
-
地球 迎来了 水瓶座时代
-
个人更着重于
-
自身内在精神灵性方面的 成长
-
不再执着于 外在物质欲望的 享受
-
水瓶座象征的是集体、群众和社区
-
意味着乐于喜悦服务他人
-
我们的 人际关系、生活方式 将发生重大变化
-
人类的集体意识会逐渐提升
-
可以更容易 连结智慧本源 以及 更高维度的世界
-
科学技术、人道主义及公正平等
-
模式创新、理想社会
-
将会是全球议题中的 重中之重
-
地球环境趋于恶化,气候多变
-
全球变暖,能源安全变得极为重要
-
人类应用高科技对空气、水以及土壤进一步改造会变得困难
-
并且加剧了 全球环境恶化
总结
-
我们了解了 try 的完全体
-
try
-
尝试运行
-
except
-
发现异常时运行的代码块
-
else
-
没有发现异常时运行的代码块
-
finally
-
无论是否发现异常最终都要运行的代码块

添加图片注释,不超过 140 字(可选)
-
为什么print函数
-
不用声明和导入?🤔
-
直接就能用呢?🤔
-
我们下次再说!👋
-
蓝桥->AI 编程-oeasy 教您玩转 python_Python - 蓝桥云课
-
github->https://github.com/overmind1980/oeasy-python-tutorial
-
gitee->oeasy教您玩转python教程: 面向零基础初学者的简明易懂的 Python3 入门课程,对没有编程经验的同学也非常友好。在vim下从浅入深,逐步学习。从基础入门学习到爬虫。
相关文章:
[oeasy]python068_异常处理之后做些什么_try语句的完全体_最终_finally
068_异常处理之后做些什么_finally 异常处理之后做些什么_try语句的完全体_最终_finally 回忆上次内容 我们了解了 try 的细节 except 可以 捕获到异常 但报错比较简单 添加图片注释,不超过 140 字(可选) 游乐场里面的 报错 更全 更丰富 …...
数据库端性能测试优化案例
数据库端性能测试优化案例 数据库是系统性能的关键瓶颈之一,特别是在高并发、大数据量的场景下。以下是一些典型的数据库端性能测试优化案例,涵盖了查询优化、索引策略、连接池管理、分布式数据库设计等多个方面: 1. 案例:优化慢…...
如何实现使用DeepSeek的CV模型对管道内模糊、低光照或水渍干扰的图像进行去噪、超分辨率重建。...
要使用 DeepSeek 的 CV 模型对管道内模糊、低光照或水渍干扰的图像进行去噪、超分辨率重建,一般可以按照以下步骤实现: 1. 准备工作 1.1 获取 API 访问权限 首先,你需要从 DeepSeek 官方获取 API 访问权限和相应的 API 密钥。这通常需要在 De…...
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相关信息的方法 环境: Win10, jdk17 查看端口的Pid netstat -ano | findstr <端口号>列出当前运行的JVM进程 ## 用于输出JVM中运行的进程状态信息。通过jps,可以快速获取Java进程的PID(进程标识符), …...
Apache Doris 实现毫秒级查询响应
1. 引言 1.1 数据分析的重要性 随着大数据时代的到来,企业对实时数据分析的需求日益增长。快速、准确地获取数据洞察成为企业在竞争中脱颖而出的关键。传统的数据库系统在处理大规模数据时往往面临性能瓶颈,难以满足实时分析的需求。例如,一个电商公司需要实时监控销售数据…...
Java 与设计模式(15):模板方法模式
一、定义 模板方法模式是一种行为设计模式,它定义了一个操作中的算法的骨架(也就是大致的步骤和流程),而将一些具体步骤的实现延迟到子类中。这样,子类可以不改变算法的结构即可重新定义算法的某些特定步骤。 二、Ja…...
Arduino 第十六章:pir红外人体传感器练习
Arduino 第十六章:PIR 传感器练习 一、引言 在 Arduino 的众多有趣项目中,传感器的应用是非常重要的一部分。今天我们要学习的主角是 PIR(被动红外)传感器。PIR 传感器能够检测人体发出的红外线,常用于安防系统、自动…...
C++中间件DDS介绍
C DDS 库简介 DDS(Data Distribution Service) 是一种用于实时分布式系统通信的中间件标准,由 OMG(Object Management Group) 提出。它是一种发布/订阅(Publish/Subscribe)模式的数据通信框架&…...
自动化之ansible(二)
一、ansible中playbook(剧本) 官方文档: Ansible playbooks — Ansible Community Documentation 1、playbook的基本结构 一个基本的playbook由以下几个主要部分组成 hosts: 定义要执行任务的主机组或主机。 become: 是否需要使用超级用户…...
QSNCTF-WEB做题记录
第一题,文章管理系统 来自 <天狩CTF竞赛平台> 描述:这是我们的文章管理系统,快来看看有什么漏洞可以拿到FLAG吧?注意:可能有个假FLAG哦 1,首先观察题目网站的结构和特征 这个一个文件管理系统&#x…...
Ruoyi-Vue 3.8.7集成积木报表JmReport和积木大屏JimuBI
Ruoyi-Vue 3.8.7集成积木报表JmReport和积木大屏JimuBI 一、版本 RuoYi-Vue版本:v3.8.7 JMreport报表版本: v1.9.4 JimuBI大屏版本:V1.9.4 二、数据库 积木数据库sql 下载后,使用数据库管理工具执行sql脚本,将需…...
OSPF(开放路径最短优先)
ospf优先级:内部优先级默认为10,外部优先级默认为150 1.ospf的三张表 (1)邻居表 <记录邻居状态和关系> (2)拓扑表 <链路状态数据库> (3)路由表 <对链路状态数据库进…...
请谈谈 Vue 中的响应式原理,如何实现?
一、Vue2响应式原理:Object.defineProperty的利与弊 实现原理: // 数据劫持核心实现 function defineReactive(obj, key, val) {const dep new Dep(); // 依赖收集容器Object.defineProperty(obj, key, {get() {if (Dep.target) { // 当前Watcher实例…...
亲测可用,IDEA中使用满血版DeepSeek R1!支持深度思考!免费!免配置!
作者:程序员 Hollis 之前介绍过在IDEA中使用DeepSeek的方案,但是很多人表示还是用的不够爽,比如用CodeChat的方案,只支持V3版本,不支持带推理的R1。想要配置R1的话有特别的麻烦。 那么,今天,给…...
jvm中各个参数的理解
MEMORY - MANAGERS 定义 MEMORY - MANAGERS即内存管理器,它是操作系统或软件系统中负责管理计算机内存资源的组件。从本质上来说,它是一种软件机制,旨在协调计算机系统中内存的分配、使用和回收等操作,确保系统能够高效、稳定地…...
【队列】循环队列(Circular Queue)详解
文章目录 一、循环队列简介二、循环队列的判空和判满三、循环队列的实现leetcode 622. 设计循环队列 一、循环队列简介 在实际开发中,队列是一种常用的数据结构,而循环队列(Circular Queue)则一般是一种基于数组实现的队列&#x…...
Deepseek快速做PPT
背景: DeepSeek大纲生成 → Kimi结构化排版 → 数据审查,细节调整 DeepSeek 拥有深度思考能力,擅长逻辑构建与内容生成,它会根据我们的问题进行思考,其深度思考能力当前测试下来,不愧为国内No.1,而且还会把中间的思考过程展示出来,大多时候会给出很多我们意想不到的思…...
DeepSeek掀起推理服务器新风暴,AI应用迎来变革转折点?
AI 浪潮下,推理服务器崭露头角 在科技飞速发展的当下,AI 是耀眼明星,席卷各行业,深刻改变生活与工作模式,从语音助手到医疗诊断、金融风险预测,AI 无处不在。其发展分数据收集整理、模型训练、推理应用三个…...
离线部署大模型:ollama+deepseek+open-webui
ollama 是一个开源的本地大语言模型运行框架,它提供了非常简单便捷的使用形式,让用户可以十分方便的在本地机器上部署和运行大型语言模型,从而实现免费离线的方式使用 LLM 能力,并确保私有数据的隐私和安全性。 1 ollama 安装 o…...
