1. gqbe.livejournal.com

    06.10.2008 14:18

    В PHP есть замечательная функция set_exception_handler.
    Которая позволяет отслеживать все необработанные исключения.
    Есть ли аналог в python-e?
  2. Denis Orlikhin

    06.10.2008 15:15

    В django/core/handlers/base.py есть функция handle_uncaught_exception, там есть замечательный комментарий:
            Processing for any otherwise uncaught exceptions (those that will
    generate HTTP 500 responses). Can be overridden by subclasses who want
    customised 500 handling.
    ...
    А вот как заставить Джангу использовать Handler с переопределённым handle_uncaught_exception я так и не понял.
  3. gqbe.livejournal.com

    06.10.2008 15:26

    В самой джанге всё просто:
    http://docs.djangoproject.com/en/dev/topics/http/middleware/#process-exception
    settings.py:
    MIDDLEWARE_CLASSES = (
    'middleware.ExceptionLogMiddleware.ExceptionLogMiddleware',
    )
    middleware/ExceptionLogMiddleware.py:
    class ExceptionLogMiddleware(object):
    def process_exception(self, request, exception):
    """
    делаем что-то с эксепшном.
    Если возвращаем HttpResponce то его вернет вместо стандартного.
    """"
    Мне же нужно чисто пайтоновское решение. Т.к. есть куча консольных скриптов, например парсеры в кроне, в каждом из которых прописывать try...except глобально не очень красиво.
    Пока решил сделать через декоратор.

bbcode