我正在尝试创建通用的异常处理程序,可以设置一个参数在发生异常时返回结果,受启发于这个答案。
import contextlib
@contextlib.contextmanager
def handler(default):
try:
yield
except Exception as e:
yield default
def main():
with handler(0):
return 1 / 0
with handler(0):
return 100 / 0
with handler(0):
return 'helllo + 'cheese'
但是这会导致 。
RuntimeError: generator didn't stop after throw()