Python学习笔记(十七):异常-----最后一篇

Python学习手册 Python学习手册 1.编译器 CPython 当我们从Python官方网站下载并安装好Python 3.x后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。 CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。 IPython IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代 阅读详情

以Mark Lutz著的《Python学习手册》为教程,每天花1个小时左右时间学习,争取两周完成。 --- 写在前面的话


2013-7-26 19:00 学习笔记

1,Python中的异常起着错误处理、事件通知、特殊情况处理、终止行为、非常规流程控制等作用。用法如下:

x = [1,2,3]
try:
	print x[3]
except IndexError:
	print 'IndexError'
print 'end...'
运行结果如下:

IndexError
end...
try语句中也可以包括finally代码块,finally中的代码无论是否发生异常都会执行。例如:

x = [1,2,3]
try:
	print x[3]
except IndexError:
	print 'IndexError'
finally:
	print 'finally...'
print 'end...'
运行结果为:

IndexError
finally...
end...

2,try语句中可以有多个except,同时可以有else,当没有异常时会执行else中的语句。从Python2.5开始,except、else、finally可以同时出现。例如:

x = [1,2,3]
try:
	print x[2]
except IndexError:
	print 'IndexError'
else:
	print 'NoError'
finally:
	print 'finally...'
print 'end...'
输出结果为:

3
NoError
finally...
end...

3,try没有捕捉到的异常会向上传递到Python进程的顶层,并执行Python默认异常处理逻辑(即Python将终止执行程序,并打印标准错误信息)。

4,try语句是可以嵌套的。

5,raise语句用于手动抛出异常,可以是内置异常,也可以是自定义异常。Python使用类自定义异常。例如:

class MyException:
	pass

try:
	raise MyException
except MyException:
	print 'Error1'
输出结果为:

Error1

6,assert语句功能与raise类似。当assert测试的值为假时,Python就会引发异常。例如:

try:
	x = 1
	assert x==0
except AssertionError:
	print 'AssertionError'
输出结果为:

AssertionError

7,with/as环境管理器可以作为try/finally的替代方案,无论是否发生异常,都将执行中止程序代码。

8,用户自定义的异常类最好是继承自Exception内置异常(但不是必须的)。StandardError是Python所有内置异常的超类。因此实际编程中,可以先捕获StandardErro异常,再捕获用户自定义异常。例如:

class MyException(Exception):
	pass

try:
	print x
except StandardError:
	print 'StandardError'
except MyException:
	print 'MyException'

9,自定义的异常类是可以有构造函数的,raise异常时可以传递数据给构造函数。例如:

class MyException(Exception):
	def __init__(self, x, y):
		self.X = x
		self.Y = y

try:
	raise MyException('error x', 'error y')
except StandardError:
	print 'StandardError'
except MyException, e:
	print 'MyException: ',e.X,e.Y
输出结果为:

MyException:  error x error y

10,raise异常时要后跟异常类的实例,即使是跟一个类的名称,也会自动实例化。可以后跟初始化参数。例如:

class MyException(Exception):
	def __init__(self, x, y):
		self.X = x
		self.Y = y

try:
	raise MyException, ('error x', 'error y')
except StandardError:
	print 'StandardError'
except MyException, e:
	print 'MyException: ',e.X,e.Y
结果与上面相同。





Python学习手册第4版 本书是学习python编程语言的入门书籍。python是一种很流行的开源编程语言。可以在各种领域中用于编写独立的程序和脚本。python免费、可移植、功能强大。 立即下载

相关推荐

rv1126 SDK编译【2020-0912版本SDK包】

rv1126 sdk 编译

学习记录 1万+

Python(一)

本文介绍了Python编程语言的基础知识。首先概述了Python的特点,包括其解释型、高级通用的特性,以及支持多种编程范式、动态类型系统和丰富的标准库等优点,同时也指出了运行速度较慢的缺点。接着详细说明了Python环境的安装配置方法,推荐使用Anaconda进行环境管理,并介绍了PyCharm IDE的安装设置。在语法规范部分,重点讲解了Python的代码风格要求,包括缩进规则、分号使用、空格处理和注释格式等。最后介绍了变量的基本概念、定义格式和创建方式,强调了Python变量的动态类型特性。这些内容为P

小钟不想敲代码 877

Qt开发实战:QWebEngineView缓存路径详解与自定义配置(Windows/Linux)

本文详细解析了Qt框架中QWebEngineView组件的缓存机制,提供了Windows和Linux系统下的默认缓存路径及自定义配置方案。通过实战代码示例,展示了如何实现跨平台缓存路径管理、权限设置以及企业级应用中的多用户隔离策略,帮助开发者有效管理Web内容缓存,提升应用性能和数据安全性。

weixin_42519826的博客 403

python 6 (最后一章)Pandas

今天到了我们学习python的最后一天,今后我会尝试开启Linux或java的学习,大家也可以向我私信大家想看什么。那么废话不多说开始我们今天的学习。 是一个 。安装请参考官网的教程,如果安装了 ,则不需要安装 库。In [1]: 产生 Pandas 对象 中有三种基本结构:一维 可以用一维列表初始化:In [2]: 默认情况下, 的下标都是数字(可以使用额外参数指定),类型是统一的。 则是个二维结构,这里首先构造一组时间序列,作为我们第一维的下标:In [3]: 随后我们创建

2301_79475922的博客 184

从被秒封到稳过Cloudflare!Canvas/WebGL/WebRTC多维度浏览器指纹隐身全实战

反爬和反反爬,本质上是一场持续的博弈,没有100%的隐身,只有不断升级的伪装。网上很多教程只给了个基础的噪声代码,却没讲透反爬的检测逻辑,导致你用了还是被封。这套方案的核心,不是简单的API重写,而是站在反爬的角度,模拟真实用户的所有特征,保证所有指纹的一致性、合理性、完整性。目前这套方案我用了半年,跑了上千万次请求,稳过国内国外99%的主流反爬平台,没有出现过一次因为指纹关联导致的批量封禁。大家有什么更狠的反爬场景,或者更好的伪装技巧,欢迎评论区一起交流。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1193

Pytorch入门实战(2)-使用BP神经网络实现MNIST手写数字识别

上一篇:Pytorch入门实战(1) - 实现线性回归 涉及知识点 Pytorch nn.Module的基本使用 Pytorch nn.Linear的基本用法 PytorchVision Transforms的基本使用 Pytorch中DataLoader的基本用法 Pytorch详解NLLLoss和CrossEntropyLoss 如何确定神经网络的层数和隐藏层神经元数量 本文内容 本文将会使用BP神经网络(就是最普通的神经网络)实现一个MNIST手写数据集的实现。话不多说,直接开始。 首先先导入需要的包

iioSnail的博客 6617

Python学习的最后一部分

变量的作用域 1、变量的作用域 (1)程序代码能访问该变量的区域 (2)根据变量的有效范围可分为 ①局部变量 在函数内定义并使用的变量,只在函数内部有效,局部变量使用global声明,这个变量就会就成全局变量 ②全局变量 函数体外定义的变量,可作用于函数内外 例子: def fun(a,b): c=a=b #c,就称为局部变量,因为c实在函数体内定义的变量a,b为函数的形参,通范围也是函数内部,相当于局部变量 print(c) #print(c) ...

weixin_54555816的博客 2416

【DRAM存储器六十八】DDR5介绍--DQS Interval Oscillator—动态时序校准利器

DDR5内存采用DQS间隔振荡器(DQSIntervalOscillator)技术应对高速数据传输中的时序漂移问题。该技术通过测量DQS信号在可编程时间窗口内的振荡次数(16位计数值),动态监测温度/电压变化导致的DQS-DQ延迟偏移。控制器通过MPC命令启停振荡器,读取MR46/MR47寄存器获取计数值,并与基准值对比来调整DQS相位,确保数据采样窗口始终处于最佳位置。该机制使DDR5在8400MT/s高速率下仍能保持数据可靠性,有效补偿±0.48tCK的时序偏移。

highman110的博客 149

【Python 入门第十七讲】异常处理

在本文中,我们将讨论如何在适当的示例的帮助下使用 try、except 和 finally 语句处理 Python 中的异常。Python 中的错误可以分为两种类型,。错误是程序中的问题,程序将因此停止执行。另一方面,当发生一些内部事件时,会引发异常,这些事件改变了程序的正常流程。

1201

qcc304x笔记之手机端显示电量(九)

默认的sdk有些安卓手机不支持电量显示,所以需要加电量显示的补丁 流程分析 1. 首先新建一个task,并将task注册给电池模块 appBatteryRegister(batteryRegistrationForm) 实现handler处理函数,当battery模块电池电量更新后,会将电池百分比值发送到本模块,然后我们就可以在handler中将实时电量同步到手机端了。 hfpAtCmdInit atCmdTask.task.handler = appAtCmdHandleM...

在云巅的博客 2200

【51单片机实物】基于51单片机设计的简易直流电机调测速系统(可用在普中开发板)

功能任务描述:将设置的转速与当前测量的转速比较,得出差值用于控制DAC0832的输出电压,从而控制直流电机的转速,使转速逐渐达到设置转速。在LED上显示设置转速(左2位LED)和当前转速(右2位LED),转速显示采用十进制。控制过程中,当前转速显示不断变化。*直流电机转速范围0-96r/s,误差±1r/s

嵌入式阿齐Archie 1万+

python学习笔记(十七) -- 异常

Table of Contents    异常 一:为什么会出现异常 1:造成代码冗余 2:无法知道详细的错误信息 二:抛出异常 1:异常的本质 2:自定义异常 三:捕获异常 1:作用 2:使用 3:向上抛出异常 四:python中内置异常的使用 五:使用except注意事项  异常 一:为什么会出现异常 1:造成代码冗余 我们下看下面的代码 >&gt...

苝花向暖丨楠枝向寒 369

制作你自己的yolov5数据集并进行训练

项目地址:make-your-yolov5_dataset 一、数据集标注软件 labelImg labelMe 精灵标注助手 更多的标注工具你可以去看:深度学习图像标注工具汇总 、 十个最常用深度学习图像/视频数据标注工具 、 百度一下 在这里我选择使用labelImg 二、数据集标注 下载labelImg 解压,直接打开labelimg.exe labelImg标注数据 标注完成后即可获得VOC格式(生成.xml文件)的数据 目录结构: dataset │ ├─Annotations .

年少的勇气已经用完,剩下的就是三思而后行 1万+

python 抛出异常_十七、深入Python异常处理

「@Author:BY Runsen」在Python 中的错误和异常是什么?通常来说,程序中的错误至少包括两种,一种是语法错误,另一种则是异常。语法错误所谓语法错误,你应该很清楚,也就是你写的代码不符合编程规范,无法被识别与执行,比如下面这个例子的语法错误下面的代码无法被识别和执行if name is not None print(name) 上面的代码If 语句漏掉了冒号,不符合 Pyt...

weixin_39518530的博客 317

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Python基础学习笔记十七(异常和文件)

异常就是在程序运行过程中,不可避免的会出现一些错误。比如:使用了没有赋值过的变量、使用了不存在的索引、除0等,这些错误在程序中,这些错误我们称其为异常。 在计算机上的文件我们可以通过 Python程序 来对计算机中的各种文件进行增删改查的操作。

小异常的博客 580

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

第十七天Python之异常

目标 异常的概念 捕获异常 异常的传递 自定义异常 一、异常的概念 程序在运行时,如果 Python 解释器 遇到 一个错误, 会停止程序的执行,并且提示一些错误信息, 这就是 异常 程序停止执行并且提示错误信息 这个动作,我们通常称之为:跑出(raise)异常 程序开发时,很难将 所有的特殊情况 都处理的面面俱到,通过 异常捕获 可以针对突发事件做集中的处理,从而保证程序的 稳定性和健壮性 二、捕获异常 1. 简单的捕获异常语法 在程序开发中,如果 对某些代码的执行不能确定是否正确, 可以增加

Sunshine________的博客 496

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【Python学习笔记】第十七节 Python 异常处理

Python学习笔记之Python 异常处理

yubao0723的专栏 257

python 除数不能为零的报错_十七、深入Python异常处理

「@Author:BY Runsen」在Python 中的错误和异常是什么?通常来说,程序中的错误至少包括两种,一种是语法错误,另一种则是异常。语法错误所谓语法错误,你应该很清楚,也就是你写的代码不符合编程规范,无法被识别与执行,比如下面这个例子的语法错误下面的代码无法被识别和执行ifnameisnotNoneprint(name)上面的代码If 语句漏掉了冒号,不符合 ...

weixin_31938351的博客 1674

python语言基本控制结构程序异常_Python学习笔记整理(十七)异常处理

一、异常基础try/except:捕捉由代码中的异常并恢复,匹配except里面的错误,并自行except中定义的代码,后继续执行程序(发生异常后,由except捕捉到异常后,不会中断程序,继续执行try语句后面的程序)try/finally: 无论异常是否发生,都执行清理行为 (发生异常时程序会中断程序,只不过会执行finally后的代码)raise: 手动在代码中接触发异常。assert: 有...

weixin_39611340的博客 643

python负数错误异常类型_十七、深入Python异常处理

「@Author:BY Runsen」在Python 中的错误和异常是什么?通常来说,程序中的错误至少包括两种,一种是语法错误,另一种则是异常。语法错误所谓语法错误,你应该很清楚,也就是你写的代码不符合编程规范,无法被识别与执行,比如下面这个例子的语法错误下面的代码无法被识别和执行if name is not Noneprint(name)上面的代码If 语句漏掉了冒号,不符合 Python 的语...

weixin_39528697的博客 828

学习python(十七)——异常机制处理

0.编程错误 编写程序时遇到的错误可大致分为 2 类,分别为语法错误和运行时错误。语法错误,也就是解析代码时出现的错误。当代码不符合 Python 语法规则时,Python解释器在解析时就会报出 SyntaxError 语法错误,与此同时还会明确指出最早探测到错误的语句。语法错误多是开发者疏忽导致的,属于真正意义上的错误,是解释器无法容忍的,因此,只有将程序中的所有语法错误全部纠正,程序才能执行。运行时错误,即程序在语法上都是正确的,但在运行时发生了错误。 异常类型 含义 AssertionE

图像学习之旅 263

python异常值处理箱型图_十七、深入Python异常处理

「@Author:BY Runsen」在Python 中的错误和异常是什么?通常来说,程序中的错误至少包括两种,一种是语法错误,另一种则是异常。语法错误所谓语法错误,你应该很清楚,也就是你写的代码不符合编程规范,无法被识别与执行,比如下面这个例子的语法错误下面的代码无法被识别和执行ifnameisnotNoneprint(name)上面的代码If 语句漏掉了冒号,不符合 ...

weixin_39594191的博客 96

Python学习笔记

java工作者,自学python学习笔记

小松鼠的博客 1254

c++ raiseexception产生异常_十七、深入Python异常处理

「@Author:BY Runsen」在Python 中的错误和异常是什么?通常来说,程序中的错误至少包括两种,一种是语法错误,另一种则是异常。语法错误所谓语法错误,你应该很清楚,也就是你写的代码不符合编程规范,无法被识别与执行,比如下面这个例子的语法错误下面的代码无法被识别和执行if name is not None print(name) 上面的代码If 语句漏掉了冒号,不符合 Pyt...

weixin_39715187的博客 425

关于python自动化运维错误的是_CrazyWing:Python自动化运维开发实战 十七、Python异常...

导语:在写代码的时候,经常会遇到异常。python提供了两个功能来处理程序在运行中出现的异常和错误,可以使用该功能来调试python程序。异常处理断言(Assertions)常用异常:Exception 它可以捕获任意(绝大部分)异常。AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性xIOError 输入/输出异常;基本上是无法打开文件ImportEr...

weixin_39585886的博客 131

十七.Python的异常处理机制

一.python提供了异常处理机制,可以在异常出现时即使捕获,然后内部“消化”,让程序继续运行 try: 编译内容 except error类型: #error类型可不写,不写默认所有error 打印的内容 n1=int(input("请输入第一个数字:")) n2=int(input("请输入第二个数字:")) print(n1/n2) 输出: 请输入第一个数字:1 请输入第二个数字:0 Traceback (most recent call las...

weixin_55298700的博客 839
上一篇: Python学习笔记(十六):类代码编写细节
下一篇: C/C++ 读书笔记(2013-7-31 15:18更新)
mathboylinlin
博客等级 码龄18年 101粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值