dmytton Mon Apr 4 14:00:22 2005 EDT
Modified files: /phpdoc/en/reference/errorfunc/functions restore-error-handler.xml Log: Added example http://cvs.php.net/diff.php/phpdoc/en/reference/errorfunc/functions/restore-error-handler.xml?r1=1.5&r2=1.6&ty=u Index: phpdoc/en/reference/errorfunc/functions/restore-error-handler.xml diff -u phpdoc/en/reference/errorfunc/functions/restore-error-handler.xml:1.5 phpdoc/en/reference/errorfunc/functions/restore-error-handler.xml:1.6 --- phpdoc/en/reference/errorfunc/functions/restore-error-handler.xml:1.5 Tue Dec 14 06:53:48 2004 +++ phpdoc/en/reference/errorfunc/functions/restore-error-handler.xml Mon Apr 4 14:00:21 2005 @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.5 $ --> +<!-- $Revision: 1.6 $ --> <!-- splitted from ./en/functions/errorfunc.xml, last change in rev 1.1 --> <refentry id="function.restore-error-handler"> <refnamediv> @@ -26,6 +26,68 @@ <function>restore_exception_handler</function>, <function>trigger_error</function>. </para> + <para> + The example below shows the handling of internal exceptions by + triggering errors and handling them with a user defined function. It then + restores the original PHP error handling: + <example> + <title> + Error handling with <function>set_error_handler</function>, + <function>trigger_error</function> and + <function>restore_error_handler</function> + </title> + <programlisting role="php"> +<![CDATA[ +<?php +// redefine the user error constants - PHP 4 only +define("FATAL", E_USER_ERROR); +define("ERROR", E_USER_WARNING); +define("WARNING", E_USER_NOTICE); + +// set the error reporting level for this script +error_reporting(FATAL | ERROR | WARNING); + +// error handler function +function myErrorHandler($errno, $errstr, $errfile, $errline) +{ + switch ($errno) { + case FATAL: + echo "<b>My FATAL</b> [$errno] $errstr<br />\n"; + echo " Fatal error in line $errline of file $errfile"; + echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n"; + echo "Aborting...<br />\n"; + exit(1); + break; + case ERROR: + echo "<b>My ERROR</b> [$errno] $errstr<br />\n"; + break; + case WARNING: + echo "<b>My WARNING</b> [$errno] $errstr<br />\n"; + break; + default: + echo "My unkown error type: [$errno] $errstr<br />\n"; + break; + } +} + +set_error_handler("myErrorHandler"); +trigger_error('Test error', ERROR); + +restore_error_handler(); // Will restore standard PHP handler +trigger_error('Test error', ERROR); +?> +]]> + </programlisting> + &example.outputs.similar; + <screen> +<![CDATA[ +My ERROR [512] Test error + +Warning: Test error in C:\Program Files\Apache Group\Apache2\htdocs\readdir.php on line 45 +]]> + </screen> + </example> + </para> </refsect1> </refentry>