在 Python 中,异常捕获是一种处理程序运行时错误的机制,它可以使程序在出现错误时继续运行,而不是崩溃。以下是对 Python 中异常捕获的详细介绍,包括try、except、else、finally关键字以及对yield关键字的介绍和案例。
一、异常捕获的基本概念
异常是程序在运行时发生的错误或异常情况。Python 提供了一种机制来捕获和处理这些异常,以确保程序的稳定性和可靠性。异常捕获的基本结构是使用try-except语句块。
二、try-except语句块
 
-  try语句块:- try语句块中包含可能会引发异常的代码。如果在- try语句块中发生了异常,程序会立即跳转到相应的- except语句块中进行处理。
- 例如:
 
     try:
         num = int(input("请输入一个整数:"))
         result = 10 / num
         print(result)
     except ValueError as e:
         print("输入不是整数,请重新输入。")
     except ZeroDivisionError as e:
         print("不能除以零,请重新输入。")
-  except语句块:- except语句块用于捕获和处理特定类型的异常。可以有多个- except语句块来处理不同类型的异常。
- 例如:
 
     try:
         file = open("nonexistent.txt", "r")
     except FileNotFoundError as e:
         print("文件不存在,请检查文件名和路径。")
     except PermissionError as e:
         print("没有权限访问文件,请检查文件权限。")
三、else语句块
 
-  else语句块:- else语句块在- try语句块没有引发任何异常时执行。它通常用于在没有异常发生时执行一些额外的操作。
- 例如:
 
四、finally语句块
 
-  finally语句块:- finally语句块无论是否发生异常都会执行。它通常用于执行一些清理操作,如关闭文件、释放资源等。
- 例如:
 
     try:
         file = open("test.txt", "r")
         data = file.read()
     except FileNotFoundError as e:
         print("文件不存在,请检查文件名和路径。")
     finally:
         file.close()
五、yield关键字
 
-  yield关键字的作用:- yield关键字用于创建生成器函数。生成器函数是一种特殊的函数,它可以在执行过程中暂停并返回一个值,然后在下次调用时继续执行。程序不报错,不会执行return语句。报错会执行return语句。
- 例如:
 
def my_genteror():
    yield 1
    yield 2
    yield 3
    yield 4
    yield 5
    return 200-  使用生成器函数:- 可以使用for循环遍历生成器函数的结果,也可以使用next()函数逐个获取生成器函数的返回值。
- 例如:
 
- 可以使用
for value in my_genteror():
    print(value)
gen = my_genteror()
try:
    while True:
        print(next(gen))
except StopIteration as e:
    # 如果生成器结束并抛出 StopIteration 异常,可以获取返回值(如果有) 可以获取return的值
    print(f"生成器返回值:{e.value}")案例演示:

六、异常捕获的最佳实践
-  只捕获可能发生的异常:- 不要捕获所有异常,只捕获可能发生的异常。这样可以避免隐藏一些潜在的问题。
 
-  提供详细的错误信息:- 在except语句块中,提供详细的错误信息,以便于调试和问题排查。
 
- 在
-  使用多个except语句块:- 根据不同类型的异常,使用多个except语句块进行处理,以便于采取不同的措施。
 
- 根据不同类型的异常,使用多个
-  合理使用finally语句块:- 在finally语句块中执行一些必要的清理操作,确保资源的正确释放。
 
- 在
总之,异常捕获是 Python 中一种重要的错误处理机制,它可以使程序在出现错误时继续运行,而不是崩溃。同时,yield关键字可以用于创建生成器函数,提供了一种灵活的方式来处理大量数据。在实际编程中,合理使用异常捕获和生成器函数可以提高程序的稳定性和效率。





















![[JavaScript版本五子棋小游戏]](https://i-blog.csdnimg.cn/direct/015ebc0fe8924ebf9df683b52a1f73f9.png)

