我正在制作一个小型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文档。有a tutorial on how to make user-defined exceptions。
文档中的示例:
class MyError(Exception):
def __init__(self, value):
self.value = value
def __str__(self):
return repr(self.value)
答案 0 :(得分:5)
您可以通过继承Exception
:
class YourError( Exception ): pass
接下来只需在需要时抬起它:
raise YourError("error message")
答案 1 :(得分:2)
问题始终是:
这完全取决于个人用例以及您要完成的任务。
显式异常通常是更好的选择。通过继承Exception来创建自己的异常可以完全控制。将任意值传递给您自己的异常的构造函数是直截了当的。在调用者端捕获异常并反省异常的存储数据也是微不足道的。
如果您期望的不仅仅是元答案,那么您必须更加具体。