外观
Python异常处理
异常处理是编程中至关重要的一部分,它能够帮助我们在程序执行过程中处理各种意外情况,保证程序的稳定性和可靠性。让我们来看一下异常处理的基本步骤:
- 使用
raise关键字可以在代码中抛出异常,这样可以提醒程序执行过程中发生了某些意外情况。不过,我们并不总是需要自定义异常,有时候直接使用已有的异常类型就足够了。 - 为了在执行可能出现异常的代码块时能够做好准备,我们可以使用
try关键字来包裹这段代码。这样,如果代码块中出现了异常,程序不会立即停止执行,而是会继续执行后续的代码。 - 当程序执行到
try块中的代码时发生了异常,我们可以使用except关键字来捕捉这个异常。这样,我们就有机会对异常进行处理,避免程序崩溃。如果成功捕捉到异常,则会执行except中的代码块。 - 有时候,我们也希望在没有发生异常时执行一些特定的操作。这时,可以在
except后面跟一个else,这样如果没有异常发生,则会执行else中的代码块。 - 最后,无论是否发生异常,我们都希望能够执行一些必要的清理工作。这时,可以使用
finally关键字,它表示无论是否抛出异常都会执行其后的代码块,确保程序执行完毕后能够做好善后工作。
例:
def share(children, apples): # 定义分苹果函数 第一个参数是小孩的数量 第二个参数是苹果的数量
if children > apples:
raise Exception('苹果太少, 小孩不够分! ')
elif children == apples:
print('小孩和苹果的数量一样多, 每个小朋友一个苹果')
elif children < apples:
print('苹果的数量更多, 每个小朋友一个苹果, 剩下', apples - children, '个苹果')
if __name__ == '__main__':
try:
share(10, 5) # 10个小孩分5个苹果
except Exception as e: # try except捕捉异常 后面可以加as 变量名 将捕捉到的变量包装成一个对象
print(e)
else: # 在except语句后面还可以加上else 指定没有捕捉到异常时执行的语句
print('顺利地为每一个小朋友分到了苹果')
finally: # 最后还可以加上finally语句 指定无论是否捕捉到异常都执行的语句 一般用于关闭文件等操作
print('第一次尝试分苹果完成')
share(7, 7)
share(5, 10)
share(10, 5)运行结果:
苹果太少, 小孩不够分!
第一次尝试分苹果完成
小孩和苹果的数量一样多, 每个小朋友一个苹果
苹果的数量更多, 每个小朋友一个苹果, 剩下 5 个苹果
---------------------------------------------------------------------------
Exception Traceback (most recent call last)
Cell In [1], line 19
17 share(7, 7)
18 share(5, 10)
---> 19 share(10, 5)
Cell In [1], line 3, in share(children, apples)
1 def share(children, apples): # 定义分苹果函数 第一个参数是小孩的数量 第二个参数是苹果的数量
2 if children > apples:
----> 3 raise Exception('苹果太少, 小孩不够分! ')
4 elif children == apples:
5 print('小孩和苹果的数量一样多, 每个小朋友一个苹果')
Exception: 苹果太少, 小孩不够分!