Google App Engine の webapp.RequestHandler には、ハンドラ内で例外が発生したときに呼び出される handle_exception メソッドがあります。このメソッド、デフォルトでは HTTP ステータスコードを 500 に設定するだけですが、これをオーバーライドして、動作をカスタマイズできます。
例外の情報をログに出力するベースハンドラクラスを作成し、リクエストハンドラはベースハンドラを継承すれば、集約例外ハンドラになりますね。
class BaseHandler(webapp.RequestHandler): def handle_exception(self, exception, debug_mode): # 例外情報をログに出力。 logging.exception(exception) # とりあえず親の実装を呼び出しておく。 # 独自のエラーページを表示するのもいいかも。 super(BaseHandler, self).handle_exception(exception, debug_mode) class MainHandler(BaseHandler): def get(self): # 何かやる
毎回 try-catch を書いたり、例外情報をログに出力するデコレータを作るよりも、この方が楽。