[albatross-users] Help catching an exception...
Neal Stephenson
neal at yorku.ca
Thu Sep 30 04:56:20 EST 2004
HI,
Not sure if this is right, but I override handle_exception in a
subclass of the Application that I use for all my apps.
Neal
On Wed, 2004-09-29 at 14:12, Sheila King wrote:
> Hello,
>
> I'm using Albatross to develop an account management interface for the web
> hosting company that I work for.
>
> In the testing process, I have determined that certain type of request urls
> will cause Albatross to throw an exception, and I'm trying to catch that
> exception to redirect to a public error page of my choosing so that end
> users do not see the Python tracebacks.
>
> Mind you, it would be some odd circumstance that would even lead to this
> type of error, but I am hoping to cover as many error situations as I can.
>
> The problem is this:
>
> A correct URL for the application might look like this:
>
> http://example.net/cgi-dev/mgr.py/createlogin
>
> But suppose this URL is requested instead:
> http://example.net/cgi-dev/mgr.py/mgr.py/createlogin
>
> Then albatross gives the following traceback:
> -----
> Template traceback (most recent call last):
>
> Traceback (most recent call last):
> File "albatross/app.py", line 279, in run
> self.load_page(ctx)
> File "albatross/randompage.py", line 29, in load_page
> self.load_page_module(ctx, page)
> File "albatross/app.py", line 435, in load_page_module
> raise ApplicationError('%s (in %s)' % (e, mod_dir))
> ApplicationError: No module named createlogin (in ./pages/mgr/py)
> -----
>
>
> In the __main__ function of the mgr.py file I tried adding
> a try/except to wrap the whole invocation of an albatross app
> (I know...bad programming...but...well...)
>
> Here is the except block I put on:
>
> except ApplicationError, e:
> Request = "http://www.Example.net/cgi-bin/mgr.py/errorpage"
> app = qaApp()
> ctx = qaAppContext(app)
> ctx.locals._errmssg = e
> app.run(qaRequest(Request))
>
> Unfortunately, it appears to be having no effect, and I am still
> getting the identical traceback as before.
>
> I also tried changing the "except" statement to
>
> except albatross.ApplicationError, e
>
> and also tried adding an import statement at the top of the code
>
> from albatross.common import AlbatrossError
>
> and changing the except statement to:
>
> except AlbatrossError, e
>
> But again, no change in the traceback produced for that particular URL.
>
>
> I sure would appreciate any tips on how to catch this error and
> redirect to an error page of my choosing...
>
> Thank you,
>
>
> _______________________________________________
> Albatross-users mailing list
> Albatross-users at object-craft.com.au
> https://www.object-craft.com.au/cgi-bin/mailman/listinfo/albatross-users
--
Neal Stephenson <neal at yorku.ca> Phone: (416) 736-2100 x40211
Manager, Development Services Fax: (416) 736-5830
Communication and Network Services Steacie T103, 4700 Keele St.
York University Toronto, On., Canada M3J 1P3
More information about the Albatross-users
mailing list