2012-08-30 67 views
1

我創建了一個特定的異常類處理特定的異常

class myException(Exception): 
    ... 

和我提出了一些具體的看法

在Django異常已經存在的方式來處理一些例外(如HTTP404,Http403。 ...)在urls.py

handler404 = 'myViews.error.not_found' 

我想要做的是處理myException,以重定向到另一個視圖。

我該怎麼做?

+0

寫自己的處理程序?這只是一個函數 –

+0

好吧,但我應該在哪裏放這個函數? – BlueMagma

回答

2

您應該可以通過爲您的項目編寫和註冊自定義Django middleware class來實現此目的。

在中間件的process_exception方法,檢查是否有您感興趣的異常,併產生一個適當的HttpResponse:

def process_exception(self, request, exception): 
    if isinstance(exception, myException): 
     return http.HttpResponse("myException raised") 
    else: 
     # Perform standard error handling for other exceptions: 
     return None 
+0

它的工作原理,謝謝(即使我現在有一個新的錯誤:-)) – BlueMagma