前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Python 异常处理机制

Python 异常处理机制

作者头像
小嗷犬
发布于 2022-11-15 07:15:49
发布于 2022-11-15 07:15:49
63200
代码可运行
举报
运行总次数:0
代码可运行

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的博客 🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 🥭本文内容:Python 异常处理机制


Python 异常处理机制


1.try-except 语句

Python解释器在运行出现异常时,会返回异常信息,告诉我们错误出现在哪一行,错误类型是什么,具体原因是什么。

在异常可能发生的地方添加异常处理程序,对于用户明确错误是一种好方法。

Python使用try-except语句实现异常处理,基本的语法格式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
try:
	<<<语句块1>>>
except <<<异常类型>>>:
	<<<发生异常执行的语句>>>
else:
    <<<没有发生异常执行的语句>>>
finally:
	<<<不管有没有异常都要执行的语句块>>>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 分别输入 No 和 5 试试看:
try:
    alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    idx = int(input("请输入一个整数: "))
    print(alphabet[idx])
except ValueError:
    print("输入错误,请输入一个整数!")
else:
    print("没有发生异常")
finally:
    print("程序执行完毕,不知道是否发生了异常")

try-except语句中可以存在多个except分支,用于捕获不同的错误类型。 一个except分支也可以捕获多种类型的错误,不同错误类型之间用逗号隔开。


2.异常类型

Python异常信息中最重要的部分是异常类型,它表明了发生异常的原因,也是程序处理异常的依据。

下表列出了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

关于构造将来语义会有改变的警告

OverflowWarning

旧的关于自动提升为长整型(long)的警告

PendingDeprecationWarning

关于特性将会被废弃的警告

RuntimeWarning

可疑的运行时行为(runtime behavior)的警告

SyntaxWarning

可疑的语法的警告

UserWarning

用户代码生成的警告


3.raise 抛出异常

raise的语法格式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
raise [Exception [, args [, traceback]]]

语句中 Exception 是异常的类型(例如:NameError)参数标准异常中任一种,args 是自已提供的异常参数。

最后一个参数是可选的(在实践中很少使用),如果存在,是跟踪异常对象。

代码实例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def judgeLevel(level):
    if level < 1:
        raise Exception("Invalid level!", level)
level = 0
judgeLevel(level)
# 触发异常后,后面的代码就不会再执行
print(f'当前层数为:{level}')

4.自定义异常

通过创建一个新的异常类,程序可以命名它们自己的异常。自定义异常直接或间接地继承自Exception类。

以下为与RuntimeError相关的实例,实例中创建了一个类,基类为RuntimeError,用于在异常触发时输出更多的信息。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Networkerror(RuntimeError):
    def __init__(self, arg):
        self.args = arg

在你定义以上类后,你可以用raise抛出该异常,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Networkerror(RuntimeError):
    def __init__(self, arg):
        self.args = arg
try:
    raise Networkerror("Bad hostname")
except Networkerror,e:
    print e.args
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-08,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python 异常处理
python标准异常 异常名称 描述 BaseException 所有异常的基类 SystemExit 解释器请求退出 KeyboardInterrupt 用户中断执行(通常是输入^C) Exception 常规错误的基类 StopIteration 迭代器没有更多的值 GeneratorExit 生成器(generator)发生异常来通知退出 StandardError 所有的内建标准异常的基类 ArithmeticError 所有数值计算错误的基类 FloatingPointError 浮点计算错误 O
张树臣
2018/05/15
1.1K0
异常--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.8K0
异常
  在python2中,要读的文件不存在时,会报IOError异常;而在python3中,如果要读的文件不存在,则会报FileNotFoundError异常。
py3study
2020/01/20
1.1K0
Python -- 异常处理
异常是一个事件,该事件在执行过程中发生,影响了程序正常执行。异常是python对象,表示一个错误。而我们要做的事发生异常后捕获并处理它,否则程序会终止。
py3study
2020/01/13
8970
Python 异常处理总结
什么是异常? 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。一般情况下,在Python无法正常处理程序时就会发生一个异常。 异常是Python对象,表示一个错误。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。 异常处理: 本站Python教程会具体介绍。 断言(Assertions):本站Python教程会具体介绍。 Python标准
CDA数据分析师
2018/02/05
1.1K0
Python 异常处理总结
python学习笔记8.1-异常处理
本文介绍了Python中异常处理的基本概念、try-except-finally语句、异常类型以及自定义异常。当程序遇到错误时,异常处理机制可以捕获错误并执行特定的错误处理代码。了解异常类型以及自定义异常可以帮助程序员更好地处理错误情况。
锦小年
2018/01/02
7830
关于Python异常处理,你需要了解的知识点
当Python检测到一个错误时,解释器就无法继续执行了,并且给出一个错误提示。比如写入文件的时候,磁盘满了,写不进去了,或者从网络抓取数据,网络突然中断。这时候,就需要捕获处理它,否则程序会终止执行。
吾非同
2020/10/26
1.4K0
关于Python异常处理,你需要了解的知识点
【Python3之异常处理】 转
程序员编写特定的代码,专门用来捕捉这个异常(这段代码与程序逻辑无关,与异常处理有关)
双面人
2019/04/10
1.3K0
【Python3之异常处理】
                                                                            转
python 异常处理
异常 广义上的错误分为错误和异常 错误指的是可以人为避免 异常是指在语法逻辑正确的而前提下,出现的问题 在python中,异常是一个类,可以处理和使用 异常的分类 BaseException 所有异常的基类 Exception 常见错误的基类 ArithmeticError 所有数值计算错误的基类 Warning 警告的基类 AssertError 断言语句(assert)失败 AttributeError 尝试访问未知的对象属性 DeprecattionWarning 关于被弃用的特征的警告 EOFErr
ruochen
2021/02/21
2.4K0
python 异常处理
Python 异常处理
Python 异常处理 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。
想偷懒的程序员
2019/10/31
5330
Python自动化运维之异常处理
1、异常 异常就是非正常状态,在Python中使用异常对象来表示异常。若程序在编译或运行过程中发生错误,程序的执行过程就会发生改变,抛出异常对象,程序流进入异常处理。如果异常对象没有被处理或捕捉,程序就会执行回溯(Traceback)来终止程序。 2、异常类型 通用异常类型表
py3study
2020/01/06
1.1K0
python基础学习15----异常处理
异常处理,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件)。
py3study
2020/01/19
1.7K0
Python——异常
下表是python的异常列表,我们通常使用Exception即可,它包含了常规错误。
zy010101
2021/04/22
8820
Python 基础(十四):错误和异常
程序中的错误我们通常称为 bug ,工作中我们不仅需要改自己程序中的 bug ,还需要改别人程序中的 bug ,新项目有 bug 要改,老项目也有 bug 要改,可以说 bug 几乎贯穿一个程序员的职业生涯... 我们通常将 bug 分为 Error(错误) 和 Exception(异常),我们下面来具体学习下 Python 中的 错误 和 异常。
Python小二
2020/08/18
1.4K0
[编程经验] Python异常处理小结
想分享的东西很多,但是不知道怎么规划,只能想起一个写一个了。今天分享一下我对Python异常的理解,希望能对大家有所启发。 首先需要知道什么是异常?“异”就是不同,有区别,不太一样等的意思,“常”就是正常,平常,所以“异常”可以理解为和正常情况有所区别的东西!那么和编程语言联系起来就是和预期有区别的输出。简单说异常也可以理解为“bug”,只不过是这个“bug”可以通过程序猿运行程序之前定义好,然后如果发生了异常,那么可以比较合理的打印出异常的信息。 其实今天为啥要讲异常呢!因为今天我遇到了让我
用户1622570
2018/04/11
1.2K0
[编程经验] Python异常处理小结
Python 异常处理#学习猿地
> 异常是一个事件,并且这个异常事件在我们程序员的运行过程中出现,会影响我们程序正常执行。
学习猿地
2020/03/18
1.1K0
11 . Python3之异常,调试和测试
1.语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正)
iginkgo18
2020/09/27
1.4K0
11 . Python3之异常,调试和测试
Python3 常见错误和异常处理
即便 Python 程序的语法是正确的,在运行它的时候,也有可能发生错误。运行检测到的错误被称为异常。
python鱼霸霸
2020/04/23
1.5K0
Py异常处理
异常处理在任何一门编程语言里都是值得关注的一个话题。就像写函数时肯定是判断异常处理,然后在写业务逻辑代码,这样代码才更健壮。
云深无际
2021/04/14
1.5K0
Py异常处理
【十五】python之异常处理
在编程过程中为了增加友好性,在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面,通俗来说就是不让用户看见大黄页!!!
菲宇
2019/06/13
1.2K0
【十五】python之异常处理
相关推荐
Python 异常处理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验