Re: Need help with a simple (I think) Perl script



"szr" <szrRE@xxxxxxxxxxxxxxx> wrote:
Ben Bullock wrote:
On Fri, 30 May 2008 01:16:39 +0200, Gunnar Hjalmarsson wrote:

If you develop a Perl program in a CGI
environment, you'd better make it a habit to

use CGI::Carp 'fatalsToBrowser';

It will make the browser display more meaningful error messages.

That may not always be a good habit, since the error messages are
meaningful only to the programmer:

http://schwern.org/~schwern/cgi-bin/unix2vms/

One can look for the messages produced by "die" in the error log too,
and if the code is in use by people other than the CGI programmers
(which it probably will be) it's probably a better bet to not use the
above outside of testing, since it will produce something meaningless
and confusing.

I wouldn't find it meaningless and confusing. It is quite clear that an
error has occurred, that is neither meaningless nor confusing. It gives
extra information, but I think I (being hypothetically not a CGI
programmer) would know enough to expect that this is meaningful to someone
else, if not to me, and that if I wish to discuss the error with that
someone else, it might be helpful to quote parts of it to them, so in that
way it is meaningful as well as not confusing.

One trick I used in the past was to have a $SIG{__DIE__} handler that
check $ENV{REMOTE_ADDR} and if it was my own, print (custom) errors ($!
and such), else just dies, leaving the error in the logs.

Unless by "just die" you mean use either the default CGI::Carp thing or
your own analog to it, by just dying you'd get an empty page, or a
partially rendered page, or a 500 error. I'd say that *that* is meaningless
and confusing!

Xho

--
-------------------- http://NewsReader.Com/ --------------------
The costs of publication of this article were defrayed in part by the
payment of page charges. This article must therefore be hereby marked
advertisement in accordance with 18 U.S.C. Section 1734 solely to indicate
this fact.
.


Quantcast