Python学习笔记(八)异常

大数据工程中的数据血缘分析工具比较 数据血缘(Data Lineage)是大数据治理中的核心组成部分,它描述了数据从源头到目标的完整流动路径。系统介绍数据血缘的核心概念和技术原理比较主流开源和商业数据血缘工具的功能特点提供数据血缘分析的实践指南和选型建议本文首先介绍数据血缘的基本概念,然后深入分析其技术原理和实现方法,接着比较主流工具的特点,最后通过实际案例展示应用场景。数据血缘(Data Lineage): 描述数据从源头到目标的完整流动路径,包括所有转换和处理步骤元数据(Metadata) 阅读详情

“Life is short, You need Python” – Bruce Eckel

Environment

  • OS: macOS Mojave
  • Python version: 3.7
  • IDE: Jupyter Notebook


0. 写在前面

程序运行过程中可能碰到各种各样的异常,如果未预设处理方式,程序将中断运行。这里记录一些 Python 中异常处理的内容。

1. 异常类

Python 所有内置异常类参考Python官方文档的内容,中文内容总结可以参考fishc的Python标准异常总结文章。

这里搞几个小例子看看

  • NameError 使用了一个未定义的对象
x + 1 # 报错 NameError
  • ZeroDevisionError 除 0 运算
1 / 0 # 报错 ZeroDivisionError
  • IndexError 索引错误,索引超出边界
ls = [9, 5, 2, 7]
ls[4] # 报错 IndexError
  • KeyError 用字典中不存在的键进行访问
d = {1: 'one', 2: 'two'}
d[0] # 报错 KeyError

2. 处理异常

在码代码时,就应该尽可能地对所有预知可能出现的异常进行捕获并设置好处理方式,以保证程序能够顺利运行而不崩溃,增强程序的稳定性和使用体验。

异常检测的语法如下

  • try-exception[-else][-finally] ,“尝试…,没问题,则…”;as 获得异常的内容
try:
	检测内容
except Exception [as error]:
    出现异常(Exception)后的处理内容
[else:
	未出现 except 中的异常时执行的内容,相当于一个分支]
[finally:
    不论是否发生异常,最终都要执行的内容]

例 一个 except,单分支

res = 0
try:
    res = 1 / 0
except ZeroDivisionError as error:
    print(error)
else:
    print(res)
finally:
    print('The division task has been done.')

# division by zero
# The division task has been done.

例 多个 except,多分支

d = {1: 'one', 2: 'two'}
try:
    print(d[0])
except NameError:
    print('NameError triggered.')
except KeyError:
    print('KeyError triggered.')
except IndexError:
    print('IndexError triggered.')

# KeyError triggered.

注意异常类之间的关系,如 Exception 为大部分异常类的基类,对 Exception 的捕获包含了对其子类的捕获

例 ZeroDivisionError 继承于 ArithmeticError, ArithmeticError 继承于 Exception。那么对 ArithmeticError 进行捕获,就可以捕获到 ZeroDivisionError;对 Exception 进行捕获,就可以捕获到 ArithmeticError 和 ZeroDivisionError。

try:
    res = 1 / 0
except ZeroDivisionError as error:
    print(error)
# division by zero

try:
    res = 1 / 0
except ArithmeticError as error:
    print(error)
# division by zero

try:
    res = 1 / 0
except Exception as error:
    print(error)
# division by zero

3. 引发异常

raise 引发异常

try:
    for i in range(3):
        for j in range(3):
            if i == 2:
                raise KeyboardInterrupt
            print(i, j)
except KeyboardInterrupt:
    print('end')
编织数据的实时脉络——构建基于MySQL的数据编织平台,实现实时数据治理 除了上述基本设置外,我们还可以根据实际应用场景自定义一些特定的监控项目。例如,对于某些高并发读写的表,可能需要特别关注它们的锁等待时间和回滚段使用率;而对于涉及到跨库关联查询的操作,则应当着重检查网络延迟及缓存命中率等因素。-- 获取InnoDB行级锁等待情况-- 统计各表的缓存命中率这段SQL脚本不仅展示了如何查询InnoDB引擎下的锁争用状况,还介绍了计算表级别缓存命中率的方法,有助于深入理解系统的运行状态。 阅读详情

相关推荐

RK3588实战:如何将8路1080P视频流实时拼接成一张超清全景图?聊聊AVS模块的那些事

本文深入解析了RK3588芯片的AVS模块如何实现8路1080P视频流的实时全景拼接技术。通过硬件加速、时间同步、几何校正和色彩均衡等关键技术,RK3588能够高效处理高密度视频流,输出超清全景图。文章还提供了优化策略和实战经验,帮助开发者充分发挥RK3588的潜力。

weixin_27014595的博客 738

String转为long 类型报错原因:要转为long必须是int、double、float型

遇到该问题的解决办法一:String strTime = "12.5416132"; double dblTime = Double.parseDouble(strTime); long lngTime = new Double(dblTime).longValue(); log.info("lngTime:"+lngTime);具体报错原因请看下面的例子和解释:上例子:string a =...

FromNowOnUntilTheEnd 1万+

什么是PON(无源光纤网络)、PON的发展及演进

全球知名媒体Omdia在光纤和铜缆接入设备预测报告中对2022年2月的预测显示,PON设备端口收入预计在2020年至2027年期间以12.3%的年复合增长率增长,到2027年将达到163亿美元,远高于2020年的82亿美元。 此前,Omdia有份报告称,在3月份举行的美国OFC展会中,众多 CSP 正在顺利部署 XGS PON(10G 对称),其他 CSP 专注于基于 GPON 的低速 FTTH 服务。另外关于25G PON 和 50G PON 之间的争论仍在继续,而Omdia 认为 25G PON 和 5

4929

Python3.x 报错NameError: name 'long' is not defined

原因是Python3.x中没有long类型,只有int类型。 Python2.x中既有long 类型又有int 类型。

FJY_sunshine的博客 1万+

Ubuntu 24.04 下 NoMachine 极速安装与远程桌面配置全攻略

本文详细介绍了在Ubuntu 24.04系统下安装和配置NoMachine远程桌面的完整指南。从系统准备、分步安装到性能调优和常见问题解决,帮助用户快速实现低延迟的远程桌面访问。特别适合开发者和IT管理员在Linux环境下高效部署远程工作环境。

moon9的博客 945

【C++PTA】6-1 Point类的运算 (10 分)

定义Point类,有坐标x,y两个私有成员变量;对Point类重载“+”(相加)、“-”(相减)和“==”(相等)运算符,实现对坐标的改变,要求用友元函数和成员函数两种方法实现。对Point类重载<<运算符,以使得代码 Point p; cout<<p<<endl;可以输出该点对象的坐标。 函数接口定义: 实现Point类。 裁判测试程序样例: /* 请在这里填写答案 */ int main(int argc, char const *argv[]) { P

libertye的博客 2367

Python中的long类型

昨天晚上重读了下python,当读到数据类型的章节时,作者说在python中可以用long类型以便士为单位计算美国国债.... 让我想起10年前第一次读.netframework时,介绍64bit的优势,可以直接计算美国的国债... 中国人引以为傲 的是GDP,美国人引以为傲的是国债..... 真理永远站在少数人的一边 当大多数人都认识到一条真理之后,它就不再是真理 那叫常识 人生...

yuanlanjun 2533

基于Jeecgboot3.9.0的文档管理系统(四)

基于Jeecgboot3.9.0的文档管理系统(四)

宁波阿成的博客 251

字符串格式之间的转换

int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 float(x ) 将x转换到一个浮点数 complex(real [,imag ]) 创建一个复数 str(x ) 将对象 x 转换为字符串 repr(x ) 将对象 x 转换为表达式字符串 eval(str ) 用来计算在字符串中的有效Python表达

pptde的博客 1029

infercnv的实操

摘要: 博主在infercnv分析中遇到执行困难,外包服务不可靠(未按要求使用HMM方法)。通过优化策略(逐样本处理、精简细胞至1000个、固定随机种子)解决了运行问题,但HMM功能仍无法实现。最终参考Cell期刊标准设置阈值完成分析,后续将继续更新进展。该案例凸显了生物信息分析中自主优化的重要性。(150字)

xiaoyusang的博客 308

用Playwright MCP让AI帮你完成所有浏览器自动化

Playwright MCP(Model Context Protocol)是微软基于 Playwright 框架推出的 AI 浏览器自动化新协议。它通过结构化快照数据和自然语言指令结合大型语言模型(如 GPT),实现无需编码的网页交互。无论你是要测试登录流程、抓取价格数据,还是用 AI 远程控制浏览器,Playwright MCP 都能大幅降低门槛,让“说人话”也能驱动自动化脚本。本篇将从功能介绍、技术架构、使用方法到实际场景,带你全面理解这一自动化革命。

todoitbo的博客 3万+

Python学习笔记八2:异常

文章目录一、异常是什么二、让事情沿你指定的轨道出错1. raise语句2. 自定义的异常类三、捕获异常1. 不用提供参数2. 多个except子句3. 一箭双雕4. 捕获对象5. 一网打尽6. 万事大吉时7. 最后8. 补充和总结四、异常和函数五、异常之禅六、不那么异常的情况   编写计算机程序时,通常能够区分正常和异常情况。异常事件可能是错误,也可能是通常不会发生的事情。为处理这些异常事件,Py...

qq_37289115的博客 873

YOLOv8与UNetV2融合:一种面向目标检测与图像分割的混合方法【附核心代码】

我们提出了一种基于YOLOv8和UNetV2相结合的混合架构。该架构利用YOLOv8作为主干进行目标检测,同时在YOLOv8的特征提取过程中,引入UNetV2来进行图像分割任务的增强。在该架构中,YOLOv8负责大范围目标检测和位置预测,而UNetV2则在检测网络的特征图基础上,通过其高效的上下文信息提取和细节恢复能力,进一步优化分割任务。在本文中,我们提出了一种改进YOLOv8的方法,通过引入图像分割网络UNetV2来提高图像分割检测性能。

一键难忘的博客 3525

Python基础学习笔记(八)异常处理

文章目录一、概念二、条件选择处理异常三、异常的体系结构与处理方式1. 体系结构:2.异常处理四、获取异常信息五、捕获异常1. try...except...语句案例:2. try...except...else语句3. try...except...finally语句4. try...except...else...finally语句案例: 本节知识大纲: 一、概念 什么是异常? 在程序运行过程中发生错误和意外,这些错误和意外往往不是语法错误。 定义:语法错误不属于异常,因为语法错误没办法让软件正常运行;

Matrix-do something 394

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Python学习笔记(八)——Python 异常处理

1、异常模块 #-*- coding: utf-8 -*- import exceptions #dir函数列出模块的内容 print dir(exceptions) #['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BufferError', 'BytesWarning', 'Depreca...

Think In JAVA—Max 816

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Python学习笔记(八)——文件处理、异常、JSON

文件 1、读取文件 每当需要分析或修改存储在文件中的信息时,首先需要将信息读取到内存中。

星辰 358

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Python学习笔记(八):Python 异常处理

http://www.w3cschool.cc/python/python-exceptions.html Python 异常处理 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。 异常处理: 本站Python教程会具体介绍。断言(Assertions):本站Python教程会具体介绍。

liushidexing的专栏 1482

Python学习笔记【八】——《python基础教程》:: 异常

python 异常

holly的专栏 613

python学习笔记(八):异常处理

一、异常处理 在程序运行过程中,总会遇到各种各样的错误。程序一出错就停止运行了,那我们不能让程序停止运行吧,这时候就需要捕捉异常了,通过捕捉到的异常,我们再去做对应的处理。 下面我们先写一个函数,实现除法运算。 1 2 3 4 5 6 7 8 9 10 11 12 def calc(a,b): retu...

weixin_33819479的博客 94

listindexoutofrange处理_Python基础学习笔记(八)异常处理

本节知识大纲:本节知识大纲一、概念什么是异常?在程序运行过程中发生错误和意外,这些错误和意外往往不是语法错误。定义:语法错误不属于异常,因为语法错误没办法让软件正常运行;正确情况下的异常指的是软件运行过程中出现的意外。num01=int(input("请输入第一个数:"))num02=int(input("请输入第二个数:"))print(num01/num02)以上代码可能出现两种异常:...

weixin_26872311的博客 561

Python学习笔记(八):异常(try...

chenqi191的博客 146

Python入门学习笔记(八) - 文件和异常、测试代码

学习内容 如何处理使用文件,如何一次性读取整个文件或以每次一行的方式读取文件的内容; 如何写入文件,以及如何将文本附加到文件末尾; 认识异常,以及如何处理程序可能引发的异常; 学习使用模块 json 保存用户数据,以免在程序停止运行后丢失。 如何使用 Python 模块 unittest 中的工具来为函数和类编写测试; 如何编写继承 unittest.TestCase 的类,以及如...

weixin_30706507的博客 144

Python(八)-异常

异常指的是Python程序发生的不正常事件。有时候,异常可称为错误。当检测到一个错误时,Python解释器就无法继续执行,反而出现了一些错误的提示,这就是异常,也就是我们常说的BUG。

weixin_58305115的博客 1060

python进阶八_警告和异常

心情有点纠结,怎么说呢,倒不是因为其他学习上的事情,反而是因为生活上狗血的剧情逼着人偏离,渐行渐远,人跟人之间有误会也是正常的,可能是因为交流不够,彼此不够了解吧,希望能尽快度过这一段纠结的日子,简单的生活,慢慢的品味,细细的思考。 最近一段时间,因为需要,借阅了一本Python Cookbook,发现这本书在很多方面介绍的都很不错,比如一些系统管理,web,分布式编程,数据持久化等等这些方面。但

liygcheng's coding world - 8262
上一篇: Python学习笔记(七)文件
下一篇: Python学习笔记(九)模块和包
longrootchen
博客等级 码龄7年 19粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值