Django - catch exception

django, exception, python

Solution

You have three options here.

- Provide a 404 handler or 500 handler

- Catch the exception elsewhere in your code and do appropriate redirection

- Provide custom middleware with the `process_exception` implemented

Middleware Example:

class MyExceptionMiddleware(object):
    def process_exception(self, request, exception):
        if not isinstance(exception, SomeExceptionType):
            return None
        return HttpResponse('some message')

Problem

Looking at this code: ``` try: ... # do something except: raise Exception('XYZ has gone wrong...') ``` Even with `DEBUG=True`, I don't want this `raise Exception` to give that yellow page, but it does. I want to handle the exception by redirecting users to an error page or shows the error (give a CSS error message on the top of the page...) How do I handle that? If I simply raise it, I will get yellow debug page (again, I don't want certain exceptions to stop the site from functioning by showing the debug page when DEBUG=True). How do I handle these exceptions in views.py?

Original source