有时使用async/await
语法后,我发现该程序不再正常工作。但没有任何例外。
例如:
async def my_func(self):
async with self.engine() as conn:
print('step1') # step1 shows in console
await conn.exceute("INSERT INTO bla-bla")
print('step2') # I can't watch 'step2', and no any exceptions caughted to console
但是如果我使用try/except
语法异常可以捕获:
async def my_func(self):
async with self.engine() as conn:
print('step1') # step1 shows in console
try:
await conn.exceute("INSERT INTO bla-bla")
except Exception as e:
print_exc() # only by this way I can see whats wrong
print('step2')
因此。我可以立即看到异常没有捕捉?或者我只能使用步骤并对其进行调试?
答案 0 :(得分:1)
异常被引发,堆栈被展开。
真正的问题是:你用什么来运行你的协程?
loop.run_until_complete(my_func())
将按您的预期处理异常。另一种使用场景可能有所不同。