繁体   English   中英

Python中的内部或外部异常类?

[英]inner or outer exception class in Python?

我有一个特殊的例外,只能在类Foo

如下所示使用内部异常类是否合适:

class Foo:
    class FooError(Exception):
        pass

    def bar(self):
        raise self.FooError('omg')

或者,它是更好地把FooError外面从Foo

class FooError(Exception):
    pass

class Foo:
    def bar(self):
        raise FooError('omg')

因为出口规则,把它放在外面。 此异常仅在类中引发 ,但它可能(并且可能会)冒泡到代码的其他部分,因此其他模块可能想要捕获它。

如果异常在类之外 ,则可以选择仅导出异常。 如果异常类中,则必须使用异常导出整个类,或使用类似__all__ = [Foo.FooError, ...] ,基本上模仿外部异常。

如果异常只是在课堂上被提出并被捕获 ,它可能有意义,但我仍然不认为它是惯用的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM