第十四节:异常处理

第十四节:异常处理

不过尔尔 3 2021-07-14

异常是什么?

在编程中,异常是指在程序执行期间发生的错误或意外情况。这些错误可能包括文件不存在、除以零、变量未定义等等。当异常发生时,程序通常会中断执行并抛出一个异常对象,以指示出现了错误。

tryexcept语句

在Python中,你可以使用tryexcept语句来捕获和处理异常。try块包含可能引发异常的代码,而except块包含异常处理代码。如果try块中的代码引发了异常,程序将跳转到匹配的except块,并执行其中的代码。

示例:

 try:
     # 可能引发异常的代码
     result = 10 / 0  # 除以零会引发 ZeroDivisionError 异常
 except ZeroDivisionError:
     # 处理 ZeroDivisionError 异常的代码
     print("除法操作出现错误:不能除以零。")

多个except

你可以在一个try语句后面跟多个except块,以处理不同类型的异常。

示例:

 try:
     result = 10 / 0  # 除以零会引发 ZeroDivisionError 异常
 except ZeroDivisionError:
     print("除法操作出现错误:不能除以零。")
 except ValueError:
     print("值错误:发生了值错误。")
 except Exception as e:
     print(f"发生了异常:{e}")

通常,你可以根据异常的类型来编写不同的except块,以便更精确地处理不同的错误情况。

else

你还可以在try语句后面添加一个else块,用于包含在没有异常发生时执行的代码。

示例:

 try:
     result = 10 / 2  # 不会引发异常
 except ZeroDivisionError:
     print("除法操作出现错误:不能除以零。")
 else:
     print("没有发生异常,结果是:", result)

finally

finally块中的代码始终会执行,不管是否发生异常。通常,它用于在程序结束时执行一些清理工作,例如关闭文件或释放资源。

示例:

 try:
     file = open("example.txt", "r")
     # 文件操作...
 except FileNotFoundError:
     print("文件不存在。")
 finally:
     if file:
         file.close()

自定义异常

除了Python内置的异常类型之外,你还可以自定义异常类型来表示特定的错误情况。自定义异常通常是继承自Exception类的子类。

示例:自定义一个名为CustomError的异常类。

 class CustomError(Exception):
     pass
 ​
 try:
     # 触发自定义异常
     raise CustomError("这是一个自定义异常。")
 except CustomError as e:
     print(f"捕获到自定义异常:{e}")

异常处理是Python编程中的重要概念,它帮助你处理错误情况,使程序能够在遇到问题时继续执行,提高了程序的稳定性和可维护性。在编写代码时,务必考虑添加适当的异常处理机制以应对可能的错误情况。