betz Tue Oct 8 06:44:01 2002 EDT Added files: /phpdoc/en/reference/errorfunc examples.xml
Modified files: /phpdoc/en/reference/errorfunc reference.xml ini.xml constants.xml Log: contents from error-handling added
Index: phpdoc/en/reference/errorfunc/reference.xml diff -u phpdoc/en/reference/errorfunc/reference.xml:1.5 phpdoc/en/reference/errorfunc/reference.xml:1.6 --- phpdoc/en/reference/errorfunc/reference.xml:1.5 Sun Sep 29 20:09:44 2002 +++ phpdoc/en/reference/errorfunc/reference.xml Tue Oct 8 06:44:00 2002 @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.5 $ --> +<!-- $Revision: 1.6 $ --> <reference id="ref.errorfunc"> <title>Error Handling and Logging Functions</title> <titleabbrev>Errors and Logging</titleabbrev> @@ -40,11 +40,12 @@ &reference.errorfunc.constants; + &reference.errorfunc.examples; + <section id="errorfunc.seealso"> &reftitle.seealso; <para> - Fore more Information see the section - <link linkend="features.error-handling">Error Handling</link>. + See also <function>syslog</function>. </para> </section> Index: phpdoc/en/reference/errorfunc/ini.xml diff -u phpdoc/en/reference/errorfunc/ini.xml:1.1 phpdoc/en/reference/errorfunc/ini.xml:1.2 --- phpdoc/en/reference/errorfunc/ini.xml:1.1 Sun Sep 29 20:09:44 2002 +++ phpdoc/en/reference/errorfunc/ini.xml Tue Oct 8 06:44:00 2002 @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.1 $ --> +<!-- $Revision: 1.2 $ --> <section id="errorfunc.configuration"> &reftitle.runtime; &extension.runtime; @@ -114,14 +114,23 @@ Set the error reporting level. The parameter is either an integer representing a bit field, or named constants. The error_reporting levels and constants are described in - <link linkend="errorfunc.constants">Predefined Constants</link> - , and in &php.ini;. To set at runtime, use the + <link linkend="errorfunc.constants">Predefined Constants</link>, + and in &php.ini;. To set at runtime, use the <function>error_reporting</function> function. See also the <link linkend="ini.display-errors">display_errors</link> directive. </para> <para> The default value does not show <constant>E_NOTICE</constant> level errors. You may want to show them during development. + </para> + <para> + In PHP 4, the default setting is + <literal>E_ALL & ~E_NOTICE</literal>, meaning to display all errors + and warnings which are not E_NOTICE-level. In PHP 3, the default + setting is <literal>(E_ERROR | E_WARNING | E_PARSE)</literal>, + meaning the same thing. Note, however, that since constants are not + supported in PHP 3's <filename>php3.ini</filename>, the error_reporting + setting there must be numeric; hence, it is <literal>7</literal>. </para> </listitem> </varlistentry> Index: phpdoc/en/reference/errorfunc/constants.xml diff -u phpdoc/en/reference/errorfunc/constants.xml:1.4 phpdoc/en/reference/errorfunc/constants.xml:1.5 --- phpdoc/en/reference/errorfunc/constants.xml:1.4 Mon Jul 22 09:38:12 2002 +++ phpdoc/en/reference/errorfunc/constants.xml Tue Oct 8 06:44:00 2002 @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.4 $ --> +<!-- $Revision: 1.5 $ --> <section id="errorfunc.constants"> &reftitle.constants; &extension.constants.core; @@ -12,12 +12,13 @@ </note> <table> <title>Errors and Logging</title> - <tgroup cols="3"> + <tgroup cols="4"> <thead> <row> <entry>Value</entry> <entry>Constant</entry> <entry>Description</entry> + <entry>Note</entry> </row> </thead> <tbody> @@ -32,6 +33,7 @@ recovered from, such as a memory allocation problem. Execution of the script is halted. </entry> + <entry></entry> </row> <row> @@ -44,6 +46,7 @@ Run-time warnings (non-fatal errors). Execution of the script is not halted. </entry> + <entry></entry> </row> <row> @@ -56,6 +59,7 @@ Compile-time parse errors. Parse errors should only be generated by the parser. </entry> + <entry></entry> </row> <row> @@ -69,6 +73,7 @@ could indicate an error, but could also happen in the normal course of running a script. </entry> + <entry></entry> </row> <row> @@ -81,6 +86,7 @@ Fatal errors that occur during PHP's initial startup. This is like an <constant>E_ERROR</constant>, except it is generated by the core of PHP. </entry> + <entry>PHP 4 only</entry> </row> <row> @@ -92,8 +98,9 @@ <entry> Warnings (non-fatal errors) that occur during PHP's initial startup. This is like an <constant>E_WARNING</constant>, except it is generated - by the core of PHP. PHP 4 only. + by the core of PHP. </entry> + <entry>PHP 4 only</entry> </row> <row> @@ -104,8 +111,9 @@ </entry> <entry> Fatal compile-time errors. This is like an <constant>E_ERROR</constant>, - except it is generated by the Zend Scripting Engine. PHP 4 only. + except it is generated by the Zend Scripting Engine. </entry> + <entry>PHP 4 only</entry> </row> <row> @@ -117,8 +125,9 @@ <entry> Compile-time warnings (non-fatal errors). This is like an <constant>E_WARNING</constant>, except it is generated by the Zend - Scripting Engine. PHP 4 only. + Scripting Engine. </entry> + <entry>PHP 4 only</entry> </row> <row> @@ -131,8 +140,8 @@ User-generated error message. This is like an <constant>E_ERROR</constant>, except it is generated in PHP code by using the PHP function <function>trigger_error</function>. - PHP 4 only. </entry> + <entry>PHP 4 only</entry> </row> <row> @@ -145,8 +154,8 @@ User-generated warning message. This is like an <constant>E_WARNING</constant>, except it is generated in PHP code by using the PHP function <function>trigger_error</function>. - PHP 4 only. </entry> + <entry>PHP 4 only</entry> </row> <row> @@ -159,8 +168,8 @@ User-generated notice message. This is like an <constant>E_NOTICE</constant>, except it is generated in PHP code by using the PHP function <function>trigger_error</function>. - PHP 4 only. </entry> + <entry>PHP 4 only</entry> </row> <row> @@ -178,6 +187,15 @@ </tgroup> </table> + <para> + The above values (either numerical or symbolic) are used to build + up a bitmask that specifies which errors to report. You can use the + <link linkend="language.operators.bitwise">bitwise operators</link> + to combine these values or mask out certain types of errors. Note + that only '|', '~', '!', and '&' will be understood within + &php.ini;, however, and that no bitwise + operators will be understood within <filename>php3.ini</filename>. + </para> </section> <!-- Keep this comment at the end of the file Index: phpdoc/en/reference/errorfunc/examples.xml +++ phpdoc/en/reference/errorfunc/examples.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <section id="errorfunc.examples"> &reftitle.examples; <para> Below we can see an example of using the error handling capabilities in PHP. We define a error handling function which logs the information into a file (using an XML format), and e-mails the developer in case a critical error in the logic happens. <example> <title>Using error handling in a script</title> <programlisting role="php"> <![CDATA[ <?php // we will do our own error handling error_reporting(0); // user defined error handling function function userErrorHandler ($errno, $errmsg, $filename, $linenum, $vars) { // timestamp for the error entry $dt = date("Y-m-d H:i:s (T)"); // define an assoc array of error string // in reality the only entries we should // consider are 2,8,256,512 and 1024 $errortype = array ( 1 => "Error", 2 => "Warning", 4 => "Parsing Error", 8 => "Notice", 16 => "Core Error", 32 => "Core Warning", 64 => "Compile Error", 128 => "Compile Warning", 256 => "User Error", 512 => "User Warning", 1024=> "User Notice" ); // set of errors for which a var trace will be saved $user_errors = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE); $err = "<errorentry>\n"; $err .= "\t<datetime>".$dt."</datetime>\n"; $err .= "\t<errornum>".$errno."</errornum>\n"; $err .= "\t<errortype>".$errortype[$errno]."</errortype>\n"; $err .= "\t<errormsg>".$errmsg."</errormsg>\n"; $err .= "\t<scriptname>".$filename."</scriptname>\n"; $err .= "\t<scriptlinenum>".$linenum."</scriptlinenum>\n"; if (in_array($errno, $user_errors)) $err .= "\t<vartrace>".wddx_serialize_value($vars,"Variables")."</vartrace>\n"; $err .= "</errorentry>\n\n"; // for testing // echo $err; // save to the error log, and e-mail me if there is a critical user error error_log($err, 3, "/usr/local/php4/error.log"); if ($errno == E_USER_ERROR) mail("[EMAIL PROTECTED]","Critical User Error",$err); } function distance ($vect1, $vect2) { if (!is_array($vect1) || !is_array($vect2)) { trigger_error("Incorrect parameters, arrays expected", E_USER_ERROR); return NULL; } if (count($vect1) != count($vect2)) { trigger_error("Vectors need to be of the same size", E_USER_ERROR); return NULL; } for ($i=0; $i<count($vect1); $i++) { $c1 = $vect1[$i]; $c2 = $vect2[$i]; $d = 0.0; if (!is_numeric($c1)) { trigger_error("Coordinate $i in vector 1 is not a number, using zero", E_USER_WARNING); $c1 = 0.0; } if (!is_numeric($c2)) { trigger_error("Coordinate $i in vector 2 is not a number, using zero", E_USER_WARNING); $c2 = 0.0; } $d += $c2*$c2 - $c1*$c1; } return sqrt($d); } $old_error_handler = set_error_handler("userErrorHandler"); // undefined constant, generates a warning $t = I_AM_NOT_DEFINED; // define some "vectors" $a = array(2,3,"foo"); $b = array(5.5, 4.3, -1.6); $c = array (1,-3); // generate a user error $t1 = distance($c,$b)."\n"; // generate another user error $t2 = distance($b,"i am not an array")."\n"; // generate a warning $t3 = distance($a,$b)."\n"; ?> ]]> </programlisting> </example> </para> </section> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->
-- PHP Documentation Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php