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>