>
> Ideally I would display through the existing view URL but switch page
> templates so the user can just hit refresh to try again.
>
This is simple. Might want to look at the BrowserView source and see how it
is called. Basically, the __call__ method is used to render the page. So
in there you can do something like,
> def __call__(self):
>
try:
>
#do something
>
return self.template1()
>
except:
>
return self.template2()
>
Something like that....
Also note that default_error_message.pt handlers various errors. You could
throw a custom Exception and handler it your own way in that template.
IMO, a redirect isn't bad either. You could then create a more concise
error handler.
-Nathan
On Thu, Dec 11, 2008 at 9:49 PM, Nigel Sim <[email protected]> wrote:
> Hi,
> I am trying to formulate a way of doing custom error handling (as opposed
> to the 'We encountered an error' page), so when I catch an exception I can
> provide a more meaningful response to the user. For instance, within some of
> my BrowserView __init__ or adapters, I call external services which may or
> may not be available. If they are not, currently I throw an exception which
> results in a generic error page.
>
> Ideally I would display through the existing view URL but switch page
> templates so the user can just hit refresh to try again. The other, less
> desirable approach would be to self.request.response.redirect to a common
> error page, and perhaps record the source page so they can click back, like
> the way the login form works.
>
> Does anybody have any throughs on this issue?
>
> Cheers
> nigel
> _______________________________________________
> Product-Developers mailing list
> [email protected]
> http://lists.plone.org/mailman/listinfo/product-developers
>
>
_______________________________________________
Product-Developers mailing list
[email protected]
http://lists.plone.org/mailman/listinfo/product-developers