2016-11-25 77 views
0

在文件工具,我有:正確的方式來處理與呼叫者文件例外在另一個

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 

理想我想要的例外在實用程序文件中完全中斷腳本的執行但不退出。 但是由於這是不可能的,處理這個問題的正確方法是從實用程序文件中除去重新提升(),並重新嘗試/除了在控制器文件中,所以異常將從實用程序傳播到控制器文件。這是處理這種情況的正確方法嗎?

+0

這是處理這種情況的好方法。 –

回答

0

這樣做的一種方法是如果驗證失敗並從控制器打印消息,則從實用程序文件返回「false」。您也可以在except子句中記錄失敗的原因。但最終,「正確」的方式取決於你對程序的期望。另外,「不可能」不是真的 - 一切皆有可能。在try-except語句中有「finally」子句,不管執行什麼,它都會執行。

0

我會從validation函數中刪除try/except塊,而是將它放在控制器文件的調用函數中。

所以:

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... 

如果你想繼續再努力,你可以將它放在與成功解約條款一環。希望這可以幫助!

相關問題