Python异常处理
在Python中,当程序执行过程中出现错误时,会引发一个异常(Exception)。如果没有适当的处理机制,这个异常会导致程序崩溃。因此,掌握异常处理技巧是每个程序员的基本功。
异常处理的基本结构:
Python中最基本的异常处理结构是try-except语句。它允许我们尝试执行一段代码,如果这段代码抛出了异常,我们可以捕获并处理这个异常,而不是让程序直接崩溃。
try:
# 尝试执行的代码
...
except SomeException as e:
# 处理异常的代码
print(f"发生了一个错误: {e}")
示例:处理文件读取错误
假设我们有一个函数用于读取文件的内容:
def read_file(filename):
try:
with open(filename, 'r') as file:
return file.read()
except FileNotFoundError:
print(f"找不到文件: {filename}")
在这个例子中,如果指定的文件不存在,open()函数会抛出FileNotFoundError异常。通过使用except子句,我们可以捕获这个异常,并打印一条友好的错误消息,而不会导致程序崩溃。
除了try-except外,我们还可以使用else和finally子句来进一步控制异常处理流程。
else 子句会在try块成功执行后运行,但不会执行except块。
finally 子句无论是否发生异常都会被执行,通常用于释放资源。
try:
# 尝试执行的代码
...
except SomeException as e:
# 处理异常的代码
...
else:
# 如果没有异常,则执行这里的代码
...
finally:
# 不论是否发生异常,都会执行这里的代码
...
继续上面的例子,我们可以通过finally子句确保文件被正确关闭:
def read_file(filename):
file = None
try:
file = open(filename, 'r')
return file.read()
except FileNotFoundError:
print(f"找不到文件: {filename}")
finally:
if file:
file.close()
自定义异常:
有时候,内置的异常类型并不能完全满足我们的需求。这时,我们可以创建自己的异常类。自定义异常类通常继承自Exception基类。
class MyCustomError(Exception):
def init(self, message):
super().init(message)
def some_function(value):
if value < 0:
raise MyCustomError("值不能小于零")
...
try:
some_function(-1)
except MyCustomError as e:
print(e)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章