在我的应用程序中,我从一个文件加载一些数据。这可能会失败并引发异常。因此,我希望记录一个警告并继续加载下一个数据。在
我就是这样做的:
try:
data_A = getDefaultConf(param_1,param_2)
except Exception as e:
log(WARNING, "Failed to get default parametres: "+str(e))
try:
data_B = getDefaultConf(param_1,param_3)
except Exception as e:
log(WARNING, "Failed to get default parametres: "+str(e))
try:
data_C = getDefaultConf(param_4,param_5)
except Exception as e:
log(WARNING, "Failed to get default parametres: "+str(e))
try:
data_D = getDefaultConf(param_4,param_6)
except Exception as e:
log(WARNING, "Failed to get default parametres: "+str(e))
try:
data_E = getDefaultConf(param_4,param_7)
except Exception as e:
log(WARNING, "Failed to get default parametres: "+str(e))
它有用,但看起来很重。所以,我的问题是:有没有一种方法可以让它更轻? 可能是这样的事情:
^{pr2}$我曾经在其他帖子中看到过一些建议把它放到循环中的答案,但是,管理我的参数不是更重吗?在
我在等任何这样的建议。不管在什么情况下我的代码是有效的。所以,这只是一个好奇的问题,这个问题也可以帮助其他程序员。。。在
在这种情况下,我可能会引入一个新函数(假设您不能或不想更改现有的
getDefaultConf
):这里唯一的区别是,对于导致异常的调用,您将返回
None
。您的申请可能接受也可能不接受。在我会这样做:
这里唯一的区别是现在可以通过数据dict访问结果,例如
data["A"]
。在请注意,当
getDefaultConf()
引发异常时,关联的条目将不会包含在dict中这可能是一件好事,也可能是坏事,这取决于您计划如何使用数据。在如果没有指定值时确实需要默认值,可以使用
data.get("A", None)
。在把你的尝试放在方法。这个会的。在
相关问题 更多 >
编程相关推荐