Python标准库,评估引发异常的方式

时间:2019-06-06 19:05:46

标签: python

是否有某种内置的封装

def produces_exception(func, args=args, args=kwargs, exception=Exception)
    try:
        func(*args, **kwargs)
    except e:
        return False
    else:
        return True

2 个答案:

答案 0 :(得分:2)

不,在Python标准库中没有做到这一点的

答案 1 :(得分:0)

为了记录(作为此类问题用例的答案-它实际上并未回答问题,但可能会帮助类似问题的人),我想使用此情况< / p>

some_iter_that_might_be_empty = get_iter()
is_empty = produces_exception(next, [some_iter_that_might_be_empty], exception=StopIteration)

可以轻松地重写为

some_iter_that_might_be_empty = get_iter()
is_empty = next(some_iter_that_might_be_empty, False)

因此,显然,在许多情况下,此行为是不必要的,因为存在更好的解决方案。也就是说,将这种行为封装在可能不是这种情况下会很好。

相关问题