Python语言 异常处理种类

Python中的异常处理是一种机制,用于在程序运行过程中捕获并处理可能发生的错误情况。这种机制使得程序能够更加健壮和容错,即使在遇到问题时也能优雅地处理,而不是简单地崩溃。

异常处理的基本结构
Python使用try、except和finally关键字来构建异常处理结构。

try块:放置可能引发异常的代码。
except块:处理特定类型的异常。可以有多个except块来处理不同类型的异常。
else块(可选):如果try块中的代码没有引发异常,则执行此块。
finally块(可选):无论是否发生异常,都会执行此块中的代码,常用于清理工作,如关闭文件或释放资源。
示例代码
以下是一个简单的异常处理示例:

python
try:
# 可能引发异常的代码
x = 1 / 0 # 这将引发ZeroDivisionError
except ZeroDivisionError:
# 处理ZeroDivisionError类型的异常
print("除数不能为零!")
else:
# 如果没有异常发生,执行此块
print("操作成功完成!")
finally:
# 无论是否发生异常,都会执行此块
print("此块将始终执行.")
在这个示例中,尝试进行除以零的操作将引发ZeroDivisionError。由于我们在try块后面有一个处理ZeroDivisionError的except块,所以程序不会崩溃,而是会输出"除数不能为零!"。无论是否发生异常,finally块中的代码都会执行,输出"此块将始终执行."。

捕获多个异常类型
你可以使用一个except块来捕获多个异常类型,只需在括号中列出它们,用逗号分隔:

python
try:
# 可能引发异常的代码
pass # 示例代码,不实际引发异常
except (ZeroDivisionError, ValueError):
# 处理ZeroDivisionError或ValueError类型的异常
print("发生了除零错误或值错误!")
捕获所有异常类型
虽然不推荐,但你可以使用一个不带任何异常类型的except块来捕获所有类型的异常:

python
try:
# 可能引发异常的代码
pass # 示例代码,不实际引发异常
except:
# 处理所有类型的异常
print("发生了未知错误!")
然而,这种做法可能会隐藏程序中的真正问题,使得调试变得困难。因此,最好尽可能具体地指定要捕获的异常类型。

自定义异常
Python允许你通过继承内置的Exception类来创建自己的异常类:

python
class MyCustomError(Exception):
def init(self, message):
super().init(message)
self.message = message

使用自定义异常

try:
raise MyCustomError("这是一个自定义错误消息!")
except MyCustomError as e:
print(e.message) # 输出: 这是一个自定义错误消息!

在这个示例中,我们定义了一个名为MyCustomError的自定义异常类,并在try块中引发它。然后,在except块中捕获并处理了这个自定义异常。

posted @   白色墨水  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示