我正在编写一个装饰器来验证一些功能。我尝试尽可能多地使用内置函数来完成繁重的工作,但我一直在选择使用它们时应该捕获哪些异常。
例如:
def Validated(fun):
def ValidatedFun(*args, **kwargs):
try:
_ = dict(kwargs.get('untrusted_data', ()))
except ? as e:
raise BetterError('Additional relevant info') from e
return fun(*args, **kwargs)
return ValidatedFun
我想知道:
dict
(和其他内置函数) 明确引发的最衍生的异常是什么? https://docs.python.org/ )
最佳答案
所有 Python 标准类型都遵循一些默认异常的约定。记录了行为 for the exceptions ,而不是类型。
对于 dict
,异常(exception)是 TypeError
和 ValueError
。此时还可以引发其他异常,但这些异常不依赖于输入( MemoryError
和 KeyboardInterrupt
)。TypeError
表示不支持传入的对象类型; dict
documentation 记录了接受哪些类型(映射或可迭代对象),其他所有内容都会引发异常。接受的类型必须符合某些期望;如果不满足这些条件,则会引发 ValueError
(类型正确,但值错误)。
关于python - 在哪里可以找到 Python 内置程序引发的异常?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44262382/