python异常或基本异常类如何工作?

时间:2017-03-18 22:16:29

标签: python exception exception-handling

所以我不知道这是不是很好的做法,可能不是......

我在一般错误类下面有一系列自定义错误/警告,它们为它们提供了一般性的东西。

class Error(Exception):
    """Main error class."""

    def __init__(self, *args):
        """Passable args."""
        self.args = args
        return None

class ValueOverwrite(Error):
    """When a value in a dictionary is overwriten."""
    pass

class SaveOverwrite(Error):
    """When a file is overwriten"""
    pass

当你提出错误并抓住它时可以用它做你想做的事情,但如果你想简化它,那么你只需要提高它 - 改变执行/打印的内容。

当某些东西被引发而没有被抓住时,它会打印出类似这样的东西

Traceback (most recent call last):
  File ".\errortest.py", line 20, in <module>
    raise Error("my msg", "a", "v")
__main__.Error: ('my msg', 'a', 'v')

我想更改此处打印的内容以查找这些错误。或至少在__main__.Error:之后的位 (我解决了这个问题) 要做到这一点,我的猜测是我需要覆盖异常或基类异常类中的一个或多个方法,但我不知道环顾许多网站,文章,python doc我找不到任何东西。 源代码在这里,但它在C中,我得到了一些,但我不知道它的全部功能或所谓的功能是什么。 几乎没有任何关于代码的文档,例如内置错误以及如何制作自定义错误。

我现在不认为这是一个很好的方法,即使你打印出不同的东西,它仍然会在代码后破坏?

我该怎么办?或者这些类的模块在哪里? 或者只是坚持这样的事情:

try:
    raise Error("my msg", "a", "v")
except Error as e:
    print(e.args[0])

0 个答案:

没有答案