My bad.

the error_handler is only used when you search for an app that does
not exist.
To redirect from an error in an existing application (any app */ any
error *) use the following routes.py

routes_onerror = [('*/*', '/error/default/index')]

On Sep 16, 3:18 pm, David Zejda <d...@atlas.cz> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hello,
>
> I returned to examine the problem more deeply, but now it behaves
> differently and I do not know why, I do not remember any change, which
> could cause the change.
>
> Now the error_handler entry in routes.py seems to be completely ignored.
> I tried further to make a simpliest testing scenario possible - there is
> application "error" with "default" controller only:
>
> def index():
>     return dict(msg="aaa")
>
> def err():
>     raise Exception("bbb")
>
> Error raised by "err" function results in standard error though there is
>
> error_handler = dict(application='error',
>         controller='default',function='index')
>
> in routes.py.
>
> If I call index() directly (http://127.0.0.1:8000/error) it works
> normally. The routes.py is not ignored in whole - change in
> error_message works.
>
> Please, any ideas?
>
> David
>
> mdipierro napsal(a):
>
> > If this is the case I could use some help debugging it.
>
> > Massimo
>
> > On Sep 11, 7:54 am, David Zejda <d...@atlas.cz> wrote:
> > Thank you for the help.
>
> > I have one problem with the solution - it seems, that if there is custom
> > error_handler in routes.py specified, the ticket is not being generated.
> > No file with traceback information appears and also the
> > request.vars.ticket is left undefined.
>
> > David
>
> > mdipierro napsal(a):
>
> >>>> make app "error" with a controller default.py and an action
> >>>> def index():
> >>>>     from gluon.tools import Mail
> >>>>     mail=Mail()
> >>>>     mail.settings.server="smpt.example.com:port"
> >>>>     mail.settings.sender="y...@example.com"
> >>>>     mail.settings.login="you:password"
> >>>>     ticket=request.vars.ticket
> >>>>     subject="Ticket: %s" % ticket
> >>>>     message=bla bla bla
> >>>>     mail.sent
> >>>> (to="administra...@example.com",subject=subject,message=message)
> >>>>     return "Sorry, an error occurred (%s), administrator has been
> >>>> notified" % ticket
> >>>> and then create a file web2py/routes.py and in it write:
> >>>> error_handler = dict(application='error', controller='default',
> >>>> function='index')
> >>>> On Sep 10, 8:54 am, David Zejda <d...@atlas.cz> wrote:
> >>>> Hello,
> >>>> for a productive site I wish to touch the default error handler, maybe
> >>>> using some kind of decorator. IMO it would be good to
> >>>> 1. retain the ticket generation
> >>>> 2. notify admin by e-mail
> >>>> 3. redirect client to a custom error page
> >>>> I would like to do it site-wide - not using the decorators for all
> >>>> controller functions one-by-one.
> >>>> Please, I will appreciate your advices..
> >>>> Thanks a lot!
> >>>> David
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
> Comment: Using GnuPG with Mozilla -http://enigmail.mozdev.org
>
> iEYEARECAAYFAkqxSAgACgkQ3oCkkciamVFW4ACggn3XI+3qZtiZIr3vA3D5cocd
> 4FoAnREVbhxKmvLH7n1df5qhG6abhFh7
> =mtr1
> -----END PGP SIGNATURE-----
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to