Look forward to seeing the article :) Thanks for the info, I'm going to
download Krang and check it out.
--------------------------------------------------
Jason A. Crome
Senior Software Engineer, DEVNET, Inc.
E-Mail: suppressed
http://www.devnetinc.com
> -----Original Message-----
> From: Sam Tregar [mailto:suppressed
> Sent: Wednesday, August 11, 2004 1:08 PM
> To: Jason A. Crome
> Cc: suppressed
> Subject: Re: [cgiapp] How do you handle errors?
>
> On Wed, 11 Aug 2004, Jason A. Crome wrote:
>
> > What have others done? What would you do in my place? I'm
> curious to
> > hear, because this is starting to drive me nuts ;)
>
> For Krang (http://krang.sf.net) we came up with a rather
> novel error handling system that seemed to work well and
> required no code in the individual run-modes to implement.
> Here's how it worked:
>
> - When an error occurs the code that finds the error calls
> Krang::Message::add_message() with a message identifier from
> conf/messages.conf indicating what went wrong.
>
> - Krang::Message puts the message on a stack in the user's session
> (managed by Apache::Session, of course).
>
> - The code then returns to the user, sometimes showing them the same
> form and sometimes redirecting them elsewhere, maybe even to
> another script within Krang.
>
> - Krang::CGI (a CGI::Application super-class) populates a special
> loop with any pending error messages. This loop is in the global
> header.tmpl which is included on all Krang screens. Since the
> error messages are in the session it doesn't matter if this is a
> different CGI or the same one that caught the error message!
>
> This system worked very well, and it had a few important
> advantages that might not be obvious:
>
> - Errors caught deep in the API can be made visible in the UI
> without requiring catching code in the CGI layer.
>
> - Errors can be generated by one CGI and then shown on a screen from
> another CGI.
>
> - Abstracting the error messages in a single conf file allowed
> non-programmers to edit the message text, improving the user
> experience. Someday maybe there will be translations done using
> this mechanism.
>
> I've been meaning to write an article about this technique.
> Thanks for reminding me!
>
> -sam
>
---------------------------------------------------------------------
Web Archive: http://www.mail-archive.com/suppressed/
http://marc.theaimsgroup.com/?l=cgiapp&r=1&w=2
To unsubscribe, e-mail: suppressed
For additional commands, e-mail: suppressed
Mail converted by mhonarc 2.6.15
This archive provided courtesy of JSW4.NET, Internet Hosting Services for Small Business.