I changed some lines of webpy code like this: code of trunk: >>>> def handle_with_processors(self): def process(processors): try: if processors: p, processors = processors[0], processors[1:] return p(lambda: process(processors)) else: return self.handle() except web.HTTPError: raise except (KeyboardInterrupt, SystemExit): raise except: print >> web.debug, traceback.format_exc() raise self.internalerror()
# processors must be applied in the resvere order. (??) return process(self.processors) code i changed to: <<<< def handle_with_processors(self): def process_wrapper(processors): try: return process(processors) except web.HTTPError: raise except (KeyboardInterrupt, SystemExit): raise except: print >> web.debug, traceback.format_exc() raise self.internalerror() def process(processors): if processors: p, processors = processors[0], processors[1:] return p(lambda: process(processors)) else: return self.handle() return process_wrapper(self.processors) It solves the problem that apps' processors cann't catch exceptions of their code. Hope you can accept the code:) -- You received this message because you are subscribed to the Google Groups "web.py" group. To post to this group, send email to webpy@googlegroups.com. To unsubscribe from this group, send email to webpy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/webpy?hl=en.