2013-01-13 45 views
1

我想知道如何返回到我的網頁(並寫入它)異常值時,它被引發。 比如我現在這樣做:如何在我的頁面寫入異常值與Django

try: 
    user.save() 
except: 
    err_msg="An error verified during user adding process. Please repeate the procedure" 
return render_to_response('staff.html', {'m':m, 'err_msg':err_msg}) 

我想更清晰的用戶,並告訴他引發什麼樣的錯誤。

回答

0

你不應該向用戶顯示實際的錯誤信息。這在安全性方面很差。你剛剛做的很好。但是你應該弄清楚什麼是失敗的原因,通過打印實際的錯誤信息進行調試目的:

try: 
    user.save() 
except Exception, e: 
    print e.message # print actual error message and figure out what went wrong 
    err_msg="An error verified during user adding process. Please repeate the procedure" 
return render_to_response('staff.html', {'m':m, 'err_msg':err_msg}) 
+0

Python不是PHP。 –

0

如果你問,如何捕獲錯誤消息的文本,只是捕捉並打印:

try: 
    '2' + 2 
except TypeError as e: 
    print '{}'.format(e) 

您也可以print e.message,但它更安全,可以嘗試直接打印。

如果你不知道什麼異常要提高,你可以使用一個通用的except子句,然後做到這一點:

import sys 

try: 
    '2' + 2 
except: 
    print sys.exc_info()[1].message 

然而,除了第一個通用的不是良好的編程習慣。明確地捕捉例外總是好的。

+0

在你的例子中你有TypeError,在我的不是,因爲我不知道我可以接受什麼樣的錯誤 – user1922860