26 错误和异常处理之捕获异常
在上一篇中,我们介绍了异常的概念,包括什么是异常、异常的分类,以及为什么异常处理在程序中是如此重要。在本篇中,我们将重点探讨如何捕获异常,使程序在发生错误时能优雅地处理这些错误,而不是异常终止。
捕获异常的基本语法
在 Python 中,可以使用 try...except
语句来捕获异常。其基本结构如下:
1 | try: |
其中,ExceptionType
是你期待捕获的异常类型。如果在 try
块中的代码抛出了指定类型的异常,则 except
块中的代码将被执行。
示例:捕获特定异常
以下是一个简单的示例,用于捕获除零异常:
1 | def divide(a, b): |
在这个示例中,divide
函数尝试进行除法运算。如果除数 b
为零,则抛出 ZeroDivisionError
异常,进入 except
块进行处理。
捕获多个异常
你可以使用多个 except
语句来处理不同类型的异常,或使用元组来同时捕获多个异常。例如:
1 | def divide(a, b): |
在这个示例中,函数 divide
不仅处理了 ZeroDivisionError
,还处理了 TypeError
,并给出相应的反馈。
捕获所有异常
有时可能希望捕获所有类型的异常,可以使用不指定异常类型的 except
块:
1 | def divide(a, b): |
需要注意的是,虽然捕获所有异常可以使程序更加健壮,但这也可能掩盖了其他潜在的问题,因此在实际项目中,应当谨慎使用。
finally 块
try
语句块可以包括一个 finally
块,它在 try
和 except
完成后执行,无论是否发生异常。这在需要进行清理操作时非常有用:
1 | def divide(a, b): |
在这个示例中,finally
块确保在每次调用之后都会打印“清理工作完成”。
总结
在本篇教程中,我们学习了如何通过 try...except
结构捕获异常,处理程序中的错误,以及使用 finally
块进行清理工作。在下一篇中,我们将继续深入探讨如何自定义异常,以便在面临特定的错误情况下提供更自定义的错误处理。
在实际开发中,异常处理是构建健壮程序的重要一环,希望大家能在日常编码中灵活运用!
26 错误和异常处理之捕获异常