Python异常处理指南:掌握try/except语句,防止程序意外终止

创始人
2024-12-25 09:46:51
0 次浏览
0 评论

Python中程序异常都能被处理吗?

“Exception”是一个代表错误的Python对象。

如果不希望程序在异常发生后自动终止,程序员必须主动捕获异常并进行相应的处理。

要捕获异常,可以使用try/except语句。

try/except语句用于检测try语句块中的错误,以便except语句捕获异常信息并进行处理。

下面是一个try/except示例,说明如何处理各种异常:

try:

#运行其他代码

except:

#如果在try部分引发'name'异常

except,:

#如果引发'name'异常,获取数据另外

否则:

#如果没有发生异常

预定义了各种标准Python异常。
基本上,这包括常见的异常情况,包括以下几种。

异常名称描述

BaseException所有异常的基类

SystemExit解释器请求退出

KeyboardInterrupt用户中断执行(通常通过输入^C)

Exception一般错误的基类

StopIteration迭代器不是还有更多的价值

GeneratorExit生成器发生异常通知退出

StandardError所有内置标准异常基类

ArithmeticError所有值计算错误的基类

FloatingPointError浮点计算错误

OverflowError数值运算超出最大限制

ZeroDivisionError零除(或取模)(所有数据类型)

AssertionError断言语句失败

AttributeError对象不具有此属性

EOFError无内置条目,已达到EOF标记

EnvironmentError操作系统错误的基类

IOErr或输入/输出操作失败

OSError操作系统错误

WindowsError系统调用失败

ImportError无法导入模块/对象

LookupError数据查询基类无效

IndexErrorIt序列中没有这样的索引

KeyError映射中没有这样的键

MemoryError内存溢出错误(对Python解释器来说不是致命的)

NameError未声明/初始化的对象(无属性)

UnboundLocalError访问未初始化的局部变量

>

ReferenceError弱引用试图访问已检索的对象

运行时错误一般运行时错误

NotImplementedError方法尚未实现

SyntaxErrorPython语法错误

IndentationError缩进错误

TabError制表符和混合空格

SystemError一般解释器系统错误

TypeError对类型的操作无效

ValueError传递无效参数

UnicodeError与Unicode相关的错误

UnicodeDecodeErrorUnicode解码错误

UnicodeEncodeErrorUnicode编码错误

UnicodeTranslateErrorUnicod转换错误

Warning警告基类

DeprecationWarning有关已弃用功能的警告

FutureWarning有关将在以下版本中更改的构造语义的警告未来

OverflowWarning有关促销的旧警告自动长(长)

PendingDeprecationWarning 关于将被弃用的功能的警告

RuntimeWarning可疑运行时行为(runtimebehavior)的警告

SyntaxWarning语法警告可疑

UserWarning代码生成的用户警告

Python系统通过发出提示并停止来处理异常操作。
我不想停下来,我只能自己处理。

没有类型,所有异常都执行同一组指令:

try:正常操作except:发生异常,执行这段代码否则:ifExecute这段代码没有异常

也可以有几个异常经常分享一段代码:

ry:正常运行except(Exception1[,Exception2[,...ExceptionN]]]):上述异常之一发生,否则运行此代码:如果运行此代码没有异常块代码

还有一种可以有尾随部分的格式:

try:fh=open("testfile","w")try:fh.write("这是一个测试文件,用于测试是否有异常!!")Final:print"关闭文件"fh.close()exceptIOError:print"错误:文件未找到或失败读取文件”

当try块中抛出异常时,立即执行final块中的代码。

执行完final块中的所有指令后,再次引发异常并执行except块中的代码。

参数内容与异常不同。

除了标准异常之外,我们还可以自己定义异常并进行处理。
在本例中,我们使用raise语句:

raise[Exception[,args[,traceback]]]</在p>

语句中,Exception是'exception(例如NameError)和标准异常参数,args是自己提供的异常参数。

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

相应的异常处理程序的例子有:

try:普通语句,包括raise

exceptException,err:引发自定义异常

else:其余代码

Python异常处理知识点汇总,五分钟就能学会

什么是异常?

1.错误

从软件的角度来看,错误是语法错误或逻辑错误。
该错误是语法或逻辑错误。

语法错误表示软件中存在无法被解释器解释或无法被编译器编译的结构错误。
这些错误必须在程序执行之前纠正。

当程序的语法正确时,剩下的就是逻辑错误。
逻辑错误可能是由于输入不完整或非法造成的;

在其他情况下,可能是逻辑无法生成、计算,或者输出结果所需的过程无法执行。
这些误差通常分别称为域误差和范围误差。

当Python检测到错误时,Python解释器会指示当前流无法继续执行。
这时出现了异常。

2.异常

对异常的最好描述是:它是由于程序中出现错误而在正常控制流之外采取的操作。

此行为分为两个阶段:首先是导致异常的错误,然后是检测(以及可能采取的措施)阶段。

第一阶段发生在异常情况(有时称为异常情况)发生后。

每当检测到错误并识别出异常情况时,解释器都会引发异常。
启动也可以称为触发、抛出或生成。
解释器使用它来通知当前控制流发生了错误。

Python还允许程序员自己抛出异常。
无论是由Python解释器还是程序员引起的,异常都是发生错误的信号。

当前流将被中断以处理此错误并采取适当的操作。
这是第二阶段。

异常处理发生在第二阶段。
引发异常后,可以调用许多不同的操作。

这可以通过忽略错误(记录错误但不采取任何操作,采取补救措施然后终止程序。
)或通过缓解问题并尝试继续执行来完成。

所有这些操作都代表控制的延续或分支。
关键是程序员可以指示程序发生错误时如何执行。

Python使用异常对象来表示异常。
当遇到错误时,会抛出异常。

如果异常对象未被处或捕获,程序将使用所谓的回溯终止执行。

异常处理

要捕获异常,您可以可以使用try/except语句。

try/except语句用于检测try语句块中的错误,以便except语句捕获异常信息并进行处理。

如果你不想在发生异常时结束程序,只需在try中捕获它即可。

语法:

下面是简单的try....except...else的语法:

Try的工作原理是,当启动时在try语句之后,Python会标记当前程序的上下文,以便在发生异常时可以返回这里。
首先执行try子句,接下来发生什么取决于执行过程中是否发生异常。

如果执行try之后的语句时出现异常,python会跳回try并执行第一个匹配异常的except子句。
异常处理完毕后,控制流会经过整个try语句(除非处理异常时抛出了新的异常)。

如果try后面的语句发生异常,但没有匹配的except子句,则该异常会提交到上层try,或者提交到程序的顶层(这会结束程序并打印错误省错误消息)。

如果没有当执行try子句时出现异常,Python会执行else语句之后的语句(如果有else),然后控制流会遍历整个try语句。

使用except而不带任何异常类型

您可以使用except而不带任何异常类型,如下例所示:

上面的try-except语句捕获所有出现的异常。
但这并不是一个好办法,我们无法通过这个程序来识别具体的异常信息。
因为它捕获了所有异常。

热门文章
1
Python中的format()方法:字... formatformat在python中的含义2222.22E+00Format...

2
Python编程入门:全面解析Pytho... python的基本语法基本的Python语法如下:1.变量的定义。在编程语言中,...

3
Python爱心绘制教程:使用turtl... python的爱心代码教程(python画爱心代码)绘制心形的Python代码我...

4
Python字符串大小写转换方法全解析 python中字母的大小写转换怎么实现?在Python中,大小写转换由内置函数处...

5
Python字典:轻松获取最小值键与计算... python在一个字典里,返回值最小元素对应的键,救解在Python字典中,如果...

6
Python字符串去重空格:strip(... Python去除字符串中空格(删除指定字符)的3种方法在Python编程中,处理...

7
Python数组元素数量计算技巧分享 Python输出数组有多少个元素?简介:在本文中,首席CTO笔记将向您介绍Pyt...

8
简述python中pass的作用 pass语句的作用在许多编程语言中,包括Python;PASS语句用于在代码块中...

9
Python def 关键字详解:函数定... def是什么意思编程?戴夫是什么意思?def是Python中的函数定义关键字,用...

10
python不区分大小写的方法 Python字符串不区分大小写在Python中,字符串操作默认区分大小写。但有时...