1

我正在制作一个小的 Python 模块。如果发生任何错误,我希望此模块返回错误。在 Python 中创建错误对象的正确或标准方法是什么?

编辑:我不确定如何创建自己的错误,当然是因为我不确定错误是如何工作的(我只知道如何捕获它们try: ... except: ...)。所以现在我制作了草稿错误消息,错误是字符串。当出现意外时,我打印 and 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)
4

2 回答 2

5

您可以通过继承创建自己的异常类Exception

class YourError( Exception ): pass

接下来,只要您需要,只需提高它:

raise YourError("error message")
于 2011-05-15T07:17:45.070 回答
2

问题总是:

  • 返回一些错误对象或
  • 引发异常

这完全取决于个人用例以及您要完成的工作。

显式异常通常是更好的选择。通过从 Exception 继承来创建自己的异常可以让您完全控制。将任意值传递给您自己的异常的构造函数是直截了当的。在调用方捕获异常并自省存储的异常数据也很简单。

如果您期望的不仅仅是元答案,则必须更具体。

于 2011-05-15T07:17:44.007 回答