Python 异常处理总结
什么是异常?
当程序执行发生错误时,就会引发异常。例如:访问未定义变量、除数为 0 等。Python 中提供了一种异常处理机制,使得程序在发生异常时能够捕获并适当地进行处理,而不直接崩溃。
异常处理语句
在 Python 中,可以使用 try/except 语句来捕获并处理异常。
try:
# 可能会引发异常的代码
except Exception1:
# 异常处理语句 1
except Exception2:
# 异常处理语句 2
else:
# 没有异常时执行的代码
finally:
# 无论是否有异常都会执行的代码
- try 代码块:需要监控的程序段
- except 代码块:如果在 try 代码块发生某个错误,则立即跳转到 except,执行其中的代码
- finally 代码块:不管有没有错误,finally 都会被执行。它一般是用来进行善后处理的,如关闭文件等操作。
- else 代码块:可能未发生错误的代码段。若要用得到这个代码段,则通常需要放到将带有所有异常处理语句的最下面。
异常分级
异常可分为以下几类:
- 捕获所有异常的基类:
BaseException
- 捕获常见异常的父类:
Exception
- 捕获零偏异常的子类:
ValueError
、TypeError
、NameError
、KeyError
、IndexError
等。
抛出异常
在 Python 中,可以自行抛出异常,以便在错误情况下中断代码的执行。
raise Exception('错误原因')
可以在 raise 后面添加任何异常类型,也可以直接使用 Exception
。
示例 1:除数为 0
假设我们有一个除法函数 divide(a, b)
,除数为 0 时会引起异常。
我们可以使用 try/except 语句来捕获并处理这个异常:
def divide(a, b):
try:
result = a / b
return result
except ZeroDivisionError:
print('除数不能为 0')
return None
print(divide(10, 2)) # 输出:5.0
print(divide(10, 0)) # 输出:除数不能为 0 None
示例 2:文件读取错误
我们可以使用 try/except/finally 语句来捕获和处理文件读取错误:
try:
f = open('file.txt', 'r')
# 读取文件的操作
except IOError:
print('文件不存在或者读取失败')
finally:
f.close() # 关闭文件,释放资源
以上代码将读取一个文件,如果文件不存在或读取发生错误,则会输出一条错误信息。
总结
异常处理是编写高质量 Python 代码的重要手段,要养成良好的异常处理习惯。在使用 Python 时,不要惧怕异常,更不要让异常难道你,合理地使用异常处理语句,可以使你的程序更加稳定、可靠。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 异常处理总结 - Python技术站