在視圖功能,我有這樣的:在Django中,如何獲取異常消息?
try:
url = request.POST.get('u', '')
if len(url) == 0:
raise ValidationError('Empty URL')
except ValidationError, err:
print err
的輸出是一個字符串:[u'Empty URL']
當我試圖傳遞錯誤信息到我的模板(在字典釀,像{ 'error_message': err.value }
),模板成功獲取消息(使用{{ error_message }}
)。
問題是,我得到與上面完全相同的字符串,[u'Empty URL']
,與[u'...']
!
我該如何擺脫?
(Python的2.6.5,1.2.4 Django的,Xubuntu的10.04)
這其實是不好的做法,我會說。 BaseException捕獲所有內容,而你只能處理ValidationError。如果另一個異常彈出,那是因爲你的代碼有錯誤,應該修復。 – Fred 2012-10-15 17:35:24
好吧,我自己也提出了錯誤/異常。 `try`塊中的代碼非常小,我認爲出現不同類型錯誤的機會很渺茫。我只是想重用`ValidationError`來實現語義。我想更合適的方法是將`BaseException`與我自己的驗證錯誤進行子類化?無論如何,自從我第一次發佈這個代碼以來,代碼已經發生了很大的變化,我的解決方法已不再適用,所以我接受了上面的答案。 – 2012-10-16 08:31:57