【发布时间】:2020-11-13 10:24:14
【问题描述】:
我有一个 python 类,我可以在其中打开文件并读出数据。如果不满足某些条件,我会引发一个错误,但在此之前我通过为对象指定一个属性来指定错误:self.Error = specification。但是由于引发错误会撤消 try 块中的所有内容,因此我无法访问它。这发生在__init__ 函数中,因此创建的对象甚至不存在..
这是必要的代码:
class MyClass:
def __init__(self):
#do something
if this_or_that:
self.Error = specification
raise MyCostumError
try:
object = MyClass()
except MyCostumError:
print(object.Error)
我得到:NameError: name 'object' is not defined
只是为了澄清:
我已经定义了MyCostumError,变量名只是为了更好地理解:我使用好的变量名,它们已定义,我需要澄清,因为可以在不同的行中引发错误。
所以这是我的问题:
有没有类似try/except 的东西,但是当出现错误时,它不会撤消所有操作。还是我只是愚蠢,有一种更简单的方法可以实现这一目标?
【问题讨论】:
-
为什么不想把错误“规范”放入错误中?
-
这是我第一次尝试引发错误。我不知道这是可能的。
标签: python python-3.x class error-handling try-catch