NAME

KCatch.pm - Catch warn and die to avoid ``Internal Server Error''


SYNOPSIS

    use KCatch;
    print "Content-Type: text/html\n\n";
    warn;
    die;


DESCRIPTION

    1ST STEP) Upload KCatch.pm to your script's directory or to @INC.
    2ND STEP) Insert just a line "use KCatch;" at top of your script.
    3RD STEP) This module could not work without the bug you made! :-)


OPTIONS

    use KCatch qw( [OPTIONS] );

KCatch.pm would automatically detect whether running under CGI or not, when no options given. Available options are following:

    use KCatch qw( plain );             # Original style
    use KCatch qw( mode=plain );        # New style

Force to make output as plain text for command-line use.

    use KCatch qw( html );              # Original style
    use KCatch qw( mode=html );         # New style

Force to make output as HTML for CGI.

    use KCatch qw( source );

Display also warned or died Perl source code for debugging. (Note: The options could make influence on some security problems to display your code for the users.)

    use KCatch qw( stderr );

Output additional information of CGI to STDERR. Usually, it would be saved to ``/usr/local/apache/logs/error_log''.

    use KCatch qw( execdata );__DATA__

Execute code after token ``__DATA__'' in the file which calls KCatch. You should put the token ``__DATA__'' just next to call KCatch. This option is VERY STRONG to force to catch almost the all errors, and becomes the Savior in case your-annoying-bugs never disappears!

    use KCatch qw( jcode=sjis );
    use KCatch qw( jcode=euc );
    use KCatch qw( jcode=jis );

Convert the charactor-code-set of the error infomations for Japanese. This option make work when ``jcode.pl'' is already required. Or Jcode=* option is also available with ``Jcode.pm''.


VERSIONS

    1999/11/05 v1.02 First Release
    1999/11/23 v1.03 Recognize between under "use" and "require"
    2000/04/25 v1.04 Bug fix: undefined $ENV{GATEWAY_INTERFACE}
    2000/05/03 v1.05 Add options "use KCatch qw( source );", etc.
    2000/05/05 v1.06 Bug fix: undefined $ENV{REQUEST_URI}
    2000/08/04 v1.07 Output additional information to STDERR
    2000/10/27 v1.08 No use of uninitialized values
    2000/12/09 v1.10 the Savior option qw( execdata ) avaliable!
                     output templete separated, jcode=* supported
    2000/12/16 v1.11 Bug fix: get_caller() with execdata option
    2002/06/29 v1.12 Bug fix: enable html_filter() at html mode.
    2002/07/01 v1.13 Bug fix: Use of uninitialized value


SITES

    http://www.kawa.net/works/perl/catch/news.html
    http://www.harukaze.net/~mishima/perl/cgi-debug-env/deb-tech.html
    http://www.we-box.com/800weblec/ise.html


THANKS

Yukitoshi Ooie <yukitos@psycrosis.homeip.net>


AUTHOR

Copyright 1999-2002 Kawasaki Yusuke <u-suke [at] kawa.net>