Python模块通常有自己的异常。我经常发现自己想要导入这些异常以便能够正确地捕获它们(不只是在cacthingException
中,而是希望得到最好的结果)。你知道吗
然而,我经常发现自己花时间去弄清楚异常在一个模块中的确切位置,或者它们是否是从另一个模块导入的,等等。我很好奇是否有一个通用的方法来找出这个问题,即给定SomeModulespecificException
有没有一个简单的方法来弄清楚如何导入它?你知道吗
以下是多处理模块的一个示例:
import multiprocessing
q = multiprocessing.Queue()
q.get_nowait()
上面的代码引发了Empty
异常。在本例中,我从this answer发现异常是从Queue
模块导入的,因此在这个特定的例子中,您需要from Queue import Empty
来导入异常。你知道吗
在一般情况下,有没有一个简单的方法来解决这个问题?你知道吗
我通常是这样做的:
在一般情况下,没有一种简单的方法可以适用于所有模块,因为它们通常不知道(或关心)它们的所有依赖项异常层次结构。第三方代码中的异常只会在堆栈中冒泡,通常没有必要捕获它,除非您确实可以做一些事情来处理它并继续。好的项目通常会在API指南中清楚地记录异常层次结构。你知道吗
相关问题 更多 >
编程相关推荐