2015年6月7日

Webapp2 教學 (10) - 客製化 Exception 的處理 ( Handle exceptions in customized ways with Webapp2 tutorial )

當遇到錯誤 404 時 Webapp2 會自動幫你顯示制式的錯誤畫面,但規模較大的網站都會自訂處理方式,並將該畫面重新設計並加上有趣的文字。因此,本篇將介紹如何客製化屬於自己的錯誤處理方式與畫面。( 其他 Webapp2 相關教學可以參考本篇整理 )



在 WSGI Application 中加入自訂的錯誤處理:
在 Webapp2 中自訂處理錯誤的方法可以隨個人喜好而修改,本篇要介紹的是比較簡單的方式,主要是透過在 WSGI Application 中加入自訂的方式來處理錯誤。我將以錯誤 404 情況來示範,請參考以下程式碼:
import os
import logging
import webapp2
from google.appengine.ext.webapp import template

def handle_404(request, response, exception):
    # 將 Exception 訊息顯示出來,別忘了要 import logging
    logging.exception(exception)

    # 指定一個頁面輸出
    path = os.path.join(os.path.dirname(__file__), 'error-404-page.html')
    response.out.write(template.render(path, {}))
    response.set_status(404)

class OtherPage(webapp2.RequestHandler):
    def get(self):
        ...

app = webapp2.WSGIApplication([
    ('/', OtherPage)
], debug=True)

# 指定你的客製化處理
app.error_handlers[404] = handle_404
#app.error_handlers[500] = handle_500


Environment :
  ・ Arch Linux
  ・ Python 2.7

Reference :
  ・ Webapp2 official site
  ・ Exceptions in the WSGI app


熱門文章