Skip to content

Instantly share code, notes, and snippets.

@kamawanu
Created April 1, 2010 05:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kamawanu/351412 to your computer and use it in GitHub Desktop.
Save kamawanu/351412 to your computer and use it in GitHub Desktop.
decorate webapp.RequestHandler each method , for trap any Exceptions
#!/usr/bin/env python
import functools, logging
from django.utils import simplejson
def safeweb(srcfunc):
def decorated(self, *vargs, **kwargs):
try:
return srcfunc(self, *vargs, **kwargs)
except Exception, err:
self.response.out.write( repr(err) )
logging.warn( [ self.request.uri, srcfunc.__name__, repr(err) ] )
decorated.__name__ = srcfunc.__name__
decorated.__dict__ = srcfunc.__dict__
return decorated
def safejson(srcfunc):
def decorated(self, *vargs, **kwargs):
try:
return srcfunc(self, *vargs, **kwargs)
except Exception, err:
self.response.headers["content-type"] = "application/x-json"
self.response.out.write( simplejson.dumps( repr(err) ) )
logging.warn( [ self.request.uri, srcfunc.__name__, repr(err) ] )
decorated.__name__ = srcfunc.__name__
decorated.__dict__ = srcfunc.__dict__
return decorated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment