我正在写一个装饰器来验证一些功能.我尝试尽可能地使用内置函数来完成繁重的工作,但是我一直在坚持选择使用它时应该捕获的异常.
例如:
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,例外是TypeError
和ValueError
.此时可以引发其他异常,但这些异常不依赖于输入(MemoryError和KeyboardInterrupt).
TypeError表示不支持传入的对象类型; dict
documentation文档接受哪些类型(映射或可迭代对象),其他一切都是引起异常的原因.接受的类型必须符合某些期望;如果不满足这些,则引发ValueError(正确的类型,但值是错误的).