当我必须捕获生成器中可能发生的异常时,如何使 try 块尽可能小?
一个典型的情况是这样的:
for i in g():
process(i)
如果g()
可以引发我需要捕获的异常,第一种方法是:
try:
for i in g():
process(i)
except SomeException as e:
pass # handle exception ...
但这也会捕获SomeException
它是否发生process(i)
(这是我不想要的)。
是否有处理这种情况的标准方法?某种模式?
我正在寻找的是这样的:
try:
for i in g():
except SomeException as e:
pass # handle exception ...
process(i)
(但这当然是句法废话。)