我想知道是否有可能处理通过函数调用方法时引发的异常(这是必要的,因为在生产代码中,根据传递的参数创建不同的对象),如以下示例所示。
函数createObj
基于不同的标准触发对象Obj_A
的创建,并被认为处理Obj_A
可能发生的任何异常。
def createObj():
try:
return Obj_A()
except:
print("Bad boy!")
Obj_A
有一个创建嵌套对象的方法,我希望在其中捕获异常并在createObj
级别处理这些异常:
class Obj_A(object):
def __init__(self):
pass
def myFunc(self, var):
return self.Obj_B(self, var)
class Obj_B(object):
def __init__(my, self, var):
try:
1/0
except:
raise ValueError("Don't divide by zero")
调用createObj
可以正常工作,但调用createObj.myFunc('var')
会引发ValueError("Don't divide by zero")
。
当然,在
try:
createObj().myFunc('var')
except:
print("Not what I need")
将起作用,但不幸地是,对于这种使用情况来说并不理想。
是否有办法在createObj
级别处理此异常并返回Bad boy!
?
1条答案
按热度按时间hiz5n14c1#
你想用
except
子句来处理一个异常,这个异常将在相应的try
语句之后被引发,这是不可能的,即使可能也是不自然的。相反,用其他方式做像这个例子。