Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >python学习笔记(8)python 异常处理

python学习笔记(8)python 异常处理

作者头像
大数据小禅
发布于 2021-08-16 10:03:23
发布于 2021-08-16 10:03:23
55300
代码可运行
举报
文章被收录于专栏:YO大数据YO大数据
运行总次数:0
代码可运行

python异常处理

什么是异常? 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行,一般情况下,在Python无法正常处理程序时就会发生一个异常。异常是Python对象,表示一个错误。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。。 异常处理: 捕捉异常可以使用try/except语句。try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。如果你不想在异常发生时结束你的程序,只需在try里捕获它。

python标准异常

try…except…

把有可能发生错误的语句放在try模块里,用except来处理异常。except可以处理专门的异常,也可以处理一组异常(使用圆括号),也可以处理所有异常,默认情况下处理所有异常,每个try,至少有一个except。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
try:
    floatnum = float(raw_input("Please input a float:"))
    intnum = int(floatnum)
    print 100/intnum
except ZeroDivisionError:
    print ("Error:you must input a float num which is large or equal then 1!")
except ValueError:
    print( "Error:you must input a float num!")

try的工作原理是,当开始一个try语句后,python就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try子句先执行,接下来会发生什么依赖于执行时是否出现异常。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。
如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印默认的出错信息)。
如果在try子句执行时没有发生异常,python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句。

try…except…else… Python中有很多特殊的else用法,比如用于条件和循环。放到try语句中,其作用其实也差不多:就是当没有检测到异常的时候,则执行else语句

代码示例

打开一个文件,在该文件中的内容写入内容,且并未发生异常:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
try:
    fh = open("testfile", "w")
    fh.write("这是一个测试文件,用于测试异常!!")
except IOError:
    print "Error: 没有找到文件或读取文件失败"
else:
    print "内容写入文件成功"
    fh.close()
输出:
    内容写入文件成功
    cat testfile       # 查看写入的内容
    这是一个测试文件,用于测试异常!!

打开一个文件,在该文件中的内容写入内容,但文件没有写入权限,发生了异常:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
try:
    fh = open("testfile", "w")
    fh.write("这是一个测试文件,用于测试异常!!")
except IOError:
    print "Error: 没有找到文件或读取文件失败"
else:
    print "内容写入文件成功"
    fh.close()
输出:
  Error: 没有找到文件或读取文件失败     

try…finally… 不论异常是否发生,程序结束前,finally中的语句都会被执行。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
try:
    fh = open("testfile", "w")
    fh.write("这是一个测试文件,用于测试异常!!")
finally:
    print "Error: 没有找到文件或读取文件失败"
输出:
    Error: 没有找到文件或读取文件失败

try跟expect·finally可以连用,例子如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
try:
    fh = open("testfile", "w")
    try:
        fh.write("这是一个测试文件,用于测试异常!!")
    finally:
        print "关闭文件"
        fh.close()
except IOError:
    print "Error: 没有找到文件或读取文件失败"

当在try块中抛出一个异常,立即执行finally块代码。 finally块中的所有语句执行后,异常被再次触发,并执行except块代码。参数的内容不同于异常。

异常的参数

一个异常可以带上参数,可作为输出的异常信息参数。你可以通过except语句来捕获异常的参数,代码格式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
try:
    正常的操作
   ......................
except ExceptionType, Argument:
    你可以在这输出 Argument 的值...

变量接收的异常值通常包含在异常的语句中。在元组的表单中变量可以接收一个或者多个值。元组通常包含错误字符串,错误数字,错误位置。

单个代码异常示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def temp_convert(var):
    try:
        return int(var)
    except ValueError, Argument:
        print ("参数没有包含数字\n", Argument)
temp_convert("xyz");
输出:
参数没有包含数字
invalid literal for int() with base 10: 'xyz'
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/01/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
零基础学Python(第二十章 异常处理try)
try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。
红目香薰
2022/11/28
3590
Python基础——PyCharm版本——第八章、文件I/O(Try)
当我们认为某些代码可能会出错时,就可以用try来运行这段代码,如果执行出错,则后续代码不会继续执行,而是直接跳转至错误处理代码,即except语句块,执行完except后,如果有finally语句块,则执行finally语句块,至此,执行完毕。
红目香薰
2022/11/29
1980
Python基础——PyCharm版本——第八章、文件I/O(Try)
Hello Python 教程1
因为我的树莓派只要开机风扇就会不停的转为了控制风扇的转速我需要写一些脚本来控制gpio接口。所以作为兴趣就学习了一下python语言,当然python的实际作用远不止此,先看看基础的再深入的了解下吧。MacOS自带的Python是2.7x,但是我使用的是3.x 。当然这两者是有差异的,即使你不懂python也可以从版本号上看出来这个差异。 The key differences between Python 2.7.x and Python 3.x with examples <-这篇博客详细说明了2.x与3.x的区别。因为本人是从3.x学习python的所以后面的博文都会以3.x作为案例。
keyle
2024/11/01
740
Hello Python 教程1
盘一盘 Python 系列特别篇 - 异常处理
从上贴【错误类型】的内容我们知道,Python 在程序报错时会返回详细信息,如错误发生的行数和具体的错误类型。
用户5753894
2020/03/26
1.1K0
Python 异常处理
python标准异常 异常名称 描述 BaseException 所有异常的基类 SystemExit 解释器请求退出 KeyboardInterrupt 用户中断执行(通常是输入^C) Exception 常规错误的基类 StopIteration 迭代器没有更多的值 GeneratorExit 生成器(generator)发生异常来通知退出 StandardError 所有的内建标准异常的基类 ArithmeticError 所有数值计算错误的基类 FloatingPointError 浮点计算错误 O
张树臣
2018/05/15
1.1K0
Python 异常处理大全
python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。
Python知识大全
2020/02/13
4930
Python -- 异常处理
异常是一个事件,该事件在执行过程中发生,影响了程序正常执行。异常是python对象,表示一个错误。而我们要做的事发生异常后捕获并处理它,否则程序会终止。
py3study
2020/01/13
9240
这份Python标准异常表 你应该了解!
异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。一般情况下,在Python无法正常处理程序时就会发生一个异常。异常是Python对象,表示一个错误。
诸葛青云
2018/09/14
2850
这份Python标准异常表 你应该了解!
Python 异常处理
Python 异常处理 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。
想偷懒的程序员
2019/10/31
5470
【Python】【天池龙珠计划笔记】Python中的异常处理
异常就是运行期检测到的错误。计算机语言针对可能出现的错误定义了异常类型,某种错误引发对应的异常时,异常处理程序将被启动,从而恢复程序的正常运行。
Regan Yue
2021/09/16
8950
【Python】【天池龙珠计划笔记】Python中的异常处理
【十五】python之异常处理
在编程过程中为了增加友好性,在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面,通俗来说就是不让用户看见大黄页!!!
菲宇
2019/06/13
1.2K0
【十五】python之异常处理
小朋友学Python(19):异常
一、什么是异常 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。 一般情况下,在Python无法正常处理程序时就会发生一个异常。 异常是Python对象,表示一个错误。 当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。 二、异常处理 捕捉异常可以使用try…except语句。 try…except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。 如果你不想在异常发生时结束你的程序,只需在try里捕获它。 语法: 以下为简单的try….ex
海天一树
2018/04/17
5970
异常--python异常处理
--**** --python 异常处理---------------------------------------------------------------------------- --**** DB API中定义了一些数据库操作的错误及异常 Warning 当有严重警告时触发,例如插入数据是被截断等等。必须是 StandardError 的子类。 Error 警告以外所有其他错误类。必须是 StandardError 的子类。 InterfaceError 当有数据库接口模块本身的错误(而不是数据库的错误)发生时触发。 必须是Error的子类。 DatabaseError 和数据库有关的错误发生时触发。 必须是Error的子类。 DataError 当有数据处理时的错误发生时触发,例如: 除零错误,数据超范围等等。 必须是DatabaseError的子类。 OperationalError 指非用户控制的,而是操作数据库时发生的错误。例如: 连接意外断开、 数据库名未找到、事务处理失败、内存分配错误等等操作数据库是发生的错误。 必须是DatabaseError的子类。 IntegrityError 完整性相关的错误,例如外键检查失败等。必须是DatabaseError子类。 InternalError 数据库的内部错误,例如游标(cursor)失效了、事务同步失败等等。 必须是DatabaseError子类。 ProgrammingError 程序错误,例如数据表(table)没找到或已存在、SQL语句语法错误、 参数数量错误等等。必须是DatabaseError的子类。 NotSupportedError 不支持错误,指使用了数据库不支持的函数或API等。例如在连接对象上 使用.rollback()函数,然而数据库并不支持事务或者事务已关闭。 必须是DatabaseError的子类。 python提供了2个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。 断言(Assertions): python标准异常 BaseException 所有异常的基类 SystemExit 解释器请求退出 KeyboardInterrupt 用户中断执行(通常是输入^C) Exception 常规错误的基类 StopIteration 迭代器没有更多的值 GeneratorExit 生成器(generator)发生异常来通知退出 StandardError 所有的内建标准异常的基类 ArithmeticError 所有数值计算错误的基类 FloatingPointError 浮点计算错误 OverflowError 数值运算超出最大限制 ZeroDivisionError 除(或取模)零 (所有数据类型) AssertionError 断言语句失败 AttributeError 对象没有这个属性 EOFError 没有内建输入,到达EOF 标记 EnvironmentError 操作系统错误的基类 IOError 输入/输出操作失败 OSError 操作系统错误 WindowsError 系统调用失败 ImportError 导入模块/对象失败 LookupError 无效数据查询的基类 IndexError 序列中没有此索引(index) KeyError 映射中没有这个键 MemoryError 内存溢出错误(对于Python 解释器不是致命的) NameError 未声明/初始化对象 (没有属性) UnboundLocalError 访问未初始化的本地变量 ReferenceError 弱引用(Weak reference)试图访问已经垃圾回收了的对象 RuntimeError 一般的运行时错误 NotImplementedError 尚未实现的方法 SyntaxError Python 语法错误 IndentationError 缩进错误 TabError Tab 和空格混用 SystemError 一般的解释器系统错误 TypeError 对类型无效的操作 ValueError 传入无效的参数 UnicodeError Unicode 相关的错误 UnicodeDecodeError Unicode 解码时的错误 UnicodeEncodeError Unicode 编码时错误 UnicodeTranslateError Unicode 转换时错误 Warning 警告的基类 DeprecationWarning 关于被弃用的特征的警告 FutureWarning 关于构造将来语义会有改变的警告 Ove
py3study
2020/01/10
2.9K0
Python异常
  异常是一个事件,该事件会在程序执行过程中发生,将影响程序的正常执行。一般情况下,在Python无法正常处理程序时就会发生一个异常。异常是Python对象,表示一个错误。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。
py3study
2020/01/09
9140
【Python3之异常处理】 转
程序员编写特定的代码,专门用来捕捉这个异常(这段代码与程序逻辑无关,与异常处理有关)
双面人
2019/04/10
1.3K0
【Python3之异常处理】
                                                                            转
函数的参数
函数的定义(一): 函数就是完成特定功能的一个语句组,这组语句可以作为一个单位使用,并且给它取一个名字。 可以通过函数名在程序的不同地方多次执行(这通常叫函数调用)。 为什么使用函数 降低编程难度 通常将一个复杂的大问题分解成一系列的小问题,然后将小问题划分成更小的问题,当问题细化为足够简单时,我们就可以分而治之。各个小问题解决了,大问题就迎刃而解了。 代码重用 避免重复劳作,提供效率 函数的定义和调用 def 函数名([参数列表]): ______定义 函数名([参数列表]) ______调用 函数名
老七Linux
2018/05/31
1.7K0
Python学习笔记
  # -*- coding: UTF-8 -*- 或 #coding=utf-8
yaohong
2019/08/21
5590
Python学习笔记
图解python | 错误与异常处理
教程地址:http://www.showmeai.tech/tutorials/56
ShowMeAI
2022/02/23
7350
图解python | 错误与异常处理
Python 错误和异常小结
1.Python异常类  Python是面向对象语言,所以程序抛出的异常也是类。常见的Python异常有以下几个,大家只要大致扫一眼,有个映像,等到编程的时候,相信大家肯定会不只一次跟他们照面(除非你不用Python了)。
py3study
2020/01/14
7070
Python基础入门6_文件和异常
这次将介绍有关文件和异常的处理,包括读写文本文件、二进制文件、JSON 文件,异常处理,以及 pathlib 模块的介绍。
kbsc13
2019/08/16
1.1K0
相关推荐
零基础学Python(第二十章 异常处理try)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档