smi*_*ith 5 python methods exception-handling return try-except
如果我在函数末尾有这样的代码:
try:
return map(float, result)
except ValueError, e:
print "error", e
Run Code Online (Sandbox Code Playgroud)
在方法的返回部分中使用try /正确吗?有解决这个问题的更明智的方法吗?
我花了一些时间来学习,在Python中,函数抛出异常是很自然的。我在解决问题的地方花了太多的精力。
如果您只是让异常冒出来,代码就会变得更简单,也更易于维护。这样可以在适当的情况下在级别上检测问题。
一种选择是:
try:
return map(float, result)
except ValueError, e:
print "error", e
raise
Run Code Online (Sandbox Code Playgroud)
但这从一些深层功能中引入了打印。可以提供相同的方法raise,让上层代码执行适当的操作。
在这种情况下,我的首选解决方案是:
return map(float, result)
Run Code Online (Sandbox Code Playgroud)
如果有问题,则无需四处跳舞,去做,应该做的事情以及抛出异常。