在文件实用程序中我有:
def validation():
try:
csrf_key, session_token, form_token = csrfKey, str( session[ 'csrf_token' ] ), request.values.get( 'csrf_token' )
except:
print( "except" )
# Should I raise() here ?
else:
print( "after except" )
在文件控制器中,我有某个时候:
def validation() # call
理想情况下,我希望实用程序文件中的异常完全中断脚本执行,但没有退出。但是,由于不可能,是否有适当的处理方法,是在实用程序文件中重新raise(),然后在控制器文件中重新尝试/尝试/除外,因此,从实用程序到控制器文件将传播例外。这是处理这种情况的正确方法吗?
这样做的一种方法是,如果验证失败并让控制器打印消息,则从实用程序文件中返回" false"。您还可以记录除外的失败原因。但最终,根据您对程序的期望,"正确"的方式取决于您。另外,"不可能"是不正确的 - 一切可能。Try-Except语法中有"最后"子句,无论如何都将执行。
我将从 validation
函数中删除try/除块,而是将其放在控制器文件中的调用函数中。
so:
def validation():
csrf_key, session_token, form_token = csrfKey, str( session[ 'csrf_token' ] ), request.values.get( 'csrf_token' )
return csrf_key, session_token, form_token
并致电:
try:
csrf_key, session_token, form_token = validation()
except:
print "Your err msg"
finally:
# run other code...
如果您想重新尝试,则可以将其放在成功的循环中。希望这会有所帮助!