【发布时间】:2013-04-01 08:12:04
【问题描述】:
因此,我创建了一个自定义异常,我想以 2 种不同的方式调用它(if/else 语句和 try/except 语句)。这是自定义异常:
class CustomException(Exception):
def __init__(self, value=None, *args, **kwargs):
self.parameter = value
for key, value in kwargs.items():
setattr(self, key, value)
for key, value in self.__dict__.items():
print "%s => %s" % ( key, value )
def __str__(self):
return repr(self.parameter)
这是我想要实现自定义异常的方式:
try:
if something:
#make an error
;lsdfj
else:
raise CustomException('this is my custom message', file='somefile.txt', var2='something')
except Exception, e:
raise CustomException(e)
我认为我的问题有两个方面:
1:当try/except块中抛出的标准NameError时(由于;lsdfj),我想传递CustomExceptions一些额外的参数,如'file',就像if/else实现一样;我该怎么做?
2:当引发自定义异常时(从 if/else 语句为假),CustomExceptions 类最终会被调用两次,因为我在 if/else 块中引发了它,然后它在 @987654328 中再次引发@ 部分。我不知道如何解决这个问题。
因此,在上述情况下,我想在 if-statement 不正确时调用 CustomException,并且我想在代码块内抛出标准异常时调用它......但目前,if something:评估为 false 则 CustomException 将被提升两次...
所以我希望自定义异常在我的代码中单方面用于if/else 条件和标准 python 异常...
我知道这个解释令人费解,但我不确定如何解释我所追求的...任何帮助将不胜感激!提前致谢!
【问题讨论】:
标签: python exception if-statement error-handling custom-exceptions