如何创建一个正确的错误对象?
我正在制作一个小的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")