2010-07-01 2 views
2

Вместо инкапсуляции весь мой код в попытке {} {}, за исключением блока, там как-нибудь подцепить исключений в глобальном масштабе?Global Обработка исключений в Google App Engine

В основном я ищу способ, чтобы иметь глобальный обработчик исключений, который будет обрабатывать все необработанные исключения в моем питона приложений, написанных для Google App Engine

ответ

1

Если вы используете рамки WebAPP, вы уже должны быть определение подкласса RequestHandler, который служит в качестве базового класса, всех обработчики вашего приложения расширения этого. Вы можете просто переопределить handle_exception, который служит в качестве глобального обработчика исключений для любых неперехваченных исключений.

default implementation вызывает self.error (500), регистрирует исключение, и если debug включен, выводится стек.

Если вы используете другой фреймворк, вы можете написать часть связующего ПО WSGI, которое вызывает завернутое приложение WSGI, и ловит любые заброшенные исключения, имея дело с ними по своему усмотрению.

0

Ну, на самом базовом уровне, вы можете обернуть все ваши скрипты обработчиков, на которые ссылается app.yaml в гигантском блоке try-except.

Если вы используете рамки WebAPP, рассмотрим переопределение handle_exception() для каждого из обработчиков запросов. Если вы хотите, чтобы все обработчики запросов имели определенную базовую обработку исключений, вы можете обработать запрос, который реализует этот метод, а затем выводит из него все ваши обработчики.

0

Вы приложение, вероятно, имеет main() функцию, положить Try/за исключением этой функции, и он будет ловить все, от вашего приложения.

Смежные вопросы