在Python中支持/反对`raise Exception(message)`的参数

gur*_*lex 2 python coding-style

我正在使用一个框架,源代码Exception在几个地方使用类(而不是子类,特定于框架或来自stdlib)引发异常,这在我看来并不是一个好主意.

反对这个成语的主要论点是它强制调用者使用except Exception:哪个可以捕获超出其意义的东西,因此在较低的堆栈级别隐藏问题.

然而,在Python文档中的快速搜索没有提出反对这种做法的论据,并且在教程中甚至有这样的例子(尽管Python脚本中的一些可能在我的Python框架中完全没有问题)意见).

那么被raise Exception认为是pythonic?

Bre*_*arn 7

PEP 8:

模块或包应该定义自己的特定于域的基类异常类,它应该是内置的Exception类的子类.