我正在使用一个框架,源代码使用Exception
类(而不是子类,特定于框架或来自stdlib)在几个地方引发异常,这是不好的我认为这个想法。
反对这个习语的主要论点是它强制调用者使用except Exception:
,它可以捕获超出其意义的内容,因此可以在较低的堆栈级别隐藏问题。
然而,在Python文档中的快速搜索没有提出反对这种做法的论据,并且在教程中甚至有这样的例子(尽管在Python中脚本可能完全没有问题)在我看来的框架)。
raise Exception
被认为是pythonic吗?
答案 0 :(得分:7)
来自PEP 8:
模块或包应该定义自己的特定于域的基类异常类,它应该是内置的Exception类的子类。
答案 1 :(得分:1)
不,不是。框架应该至少提供自己的异常类,并且可能应该有几个(取决于可能出错的各种事物)。
正如你所说,except Exception
会抓住太多而且不是很好的做法。