2

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

反对这个习惯用法的主要论点是它强制调用者使用except Exception:可以捕获的比意思更多的东西,因此在较低的堆栈级别隐藏问题。

然而,在 Python 文档中的快速搜索并没有提出反对这种做法的论据,甚至在教程中也有这样的例子(尽管在 Python 脚本中可以的事情在我的 Python 框架中可能根本就不行观点)。

那么被raise Exception认为是pythonic吗?

4

2 回答 2

7

PEP 8开始:

模块或包应定义自己的特定于域的基本异常类,该类应从内置 Exception 类继承。

于 2012-09-26T07:27:37.380 回答
1

不它不是。框架至少应该提供自己的异常类,并且可能应该有几个(取决于可能出错的各种事情)。

正如你所说,except Exception会捕捉太多,不是好的做法。

于 2012-09-26T07:28:30.670 回答