如何创建一个正确的错误对象?

1 投票
2 回答
2747 浏览
提问于 2025-04-16 17:39

我正在制作一个小的Python模块。我希望这个模块能在出现错误时返回错误信息。请问在Python中创建错误对象的正确或标准方法是什么?

编辑:我其实不太确定怎么创建自己的错误,可能是因为我不太了解错误是怎么工作的(我只知道怎么在try: ... except: ...中捕获它们)。所以现在我只是写了一些草稿错误信息,错误信息是字符串。当出现意外情况时,我打印这些信息并return None。我想这不是正确的方法 :)

示例:

    ...
    self.IsNotStringError = "Args was not a string."
    ...

def myMethod(self, args)
    """ Args must be a string. """
    if not isinstance(args, str):
       print IsNotStringError
       return None
    else:
        do things...

编辑(补充):在阅读了下面的回答后,我进一步查阅了Python的文档。那里有一个关于如何创建用户自定义异常的教程

文档中的示例:

class MyError(Exception):
    def __init__(self, value):
    self.value = value
    def __str__(self):
        return repr(self.value)

2 个回答

2

问题总是:

  • 返回一个错误对象,还是
  • 抛出一个异常

这完全取决于你具体的使用场景和你想要达成的目标。

通常来说,明确地抛出异常是更好的选择。通过从异常类(Exception)继承来创建你自己的异常,这样你就可以完全掌控它。把任意值传给你自己异常的构造函数也很简单。在调用方捕获这个异常并查看异常中存储的数据也很容易。

如果你希望得到更具体的回答,就需要提供更多的信息。

5

你可以通过继承 Exception 来创建你自己的异常类:

class YourError( Exception ): pass

接下来,只要需要的时候就抛出这个异常:

raise YourError("error message")

撰写回答