gpt4 book ai didi

Python:在一个完整的项目中组织用户定义的异常

转载 作者:太空狗 更新时间:2023-10-29 18:07:24 25 4
gpt4 key购买 nike

我对 Python 中的用户定义异常以及如何在一个完整的项目中组织它们有一些疑问。

我有一个相当复杂的 python 项目,其中包含一些具有以下结构的子包(省略了 __init__.py):

/docs (Documentation)
/apidocs (generated API documentation)
/askindex (my application package)
/test (Unit tests directory)
test_utils.py
... (more tests)
/workers (various worker classes)
communicators.py
processes.py
threads.py
utils.py
main.py (contains the starting point)
data_objects.py (various objects used all around the application)
settings.py (settings of the application)
README.txt

我想实现我自己的异常,以便在“workers”包的模块中使用它们来处理特定错误。

我应该把这些异常放在哪里?我知道我应该有自己的基本异常,它是标准异常类的子类,并将它作为我的其他异常的子类。我应该在 'workers' 下创建一个新的 'exceptions' 模块吗?将异常类放在引发它们的模块中?在这种情况下,我应该把我的基类放在哪里?我的申请结构是否合适?

我是 Python 异常的新手,所以如果答案很明显,请原谅...

最佳答案

一般来说,我在自己的工作中发现,当我想要自定义类型的异常时,它特定于特定的模块或包。如果它与模块相关,我就把它放在那个模块中。我还没有发现有一个专门用于异常的模块或包会更整洁的情况。

示例:如果我有一个 jester 模块,其中有一个 Juggler 类和一个可以引发 juggle 方法DroppedBall(提示扔烂番茄或类似东西),DroppedBall 将位于 jester 模块中。然后 crowd.Person 实例可以尝试观看变戏法者和除了 jester.DroppedBall

如果我有一个包 food,里面有各种模块,fruitvegetable 等都有一个 eat 方法(继承自 food.Foodstuff,毫无疑问),他们可能会引发一个 RottenException,这自然属于 的根>食物包:__init__.py

关于Python:在一个完整的项目中组织用户定义的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4181708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com