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>
 

Reply via email to