面试题答案
一键面试在异步生成器中进行全面的错误处理,可以从以下两方面入手:
生成器函数内部的错误处理
在异步生成器函数内部,对每个异步操作使用 try - catch
块来捕获错误。
迭代生成器时的错误处理
在迭代异步生成器时,同样使用 try - catch
块来捕获可能抛出的错误。
以下是代码示例:
import asyncio
async def async_generator():
try:
# 模拟数据库查询
await asyncio.sleep(1)
result1 = "数据库查询结果"
yield result1
# 模拟文件读取
await asyncio.sleep(1)
result2 = "文件读取结果"
yield result2
except Exception as e:
print(f"生成器内部错误: {e}")
async def main():
try:
async for value in async_generator():
print(value)
except Exception as e:
print(f"迭代生成器时的错误: {e}")
if __name__ == "__main__":
asyncio.run(main())
在上述代码中:
async_generator
函数是一个异步生成器,内部对异步操作进行了try - catch
块包裹以处理内部错误。main
函数中,通过async for
迭代异步生成器,并使用try - catch
块捕获迭代过程中可能出现的错误。