[PHP-DOC] cvs: phpdoc /en/features error-handling.xml From: Torben Wilson (torben <email protected>)
Date: 08/20/00

torben Sun Aug 20 03:49:33 2000 EDT

  Modified files:
    /phpdoc/en/features error-handling.xml
  Log:
  
  
  Some clarifications & fixes.
  
  
Index: phpdoc/en/features/error-handling.xml
diff -u phpdoc/en/features/error-handling.xml:1.4 phpdoc/en/features/error-handling.xml:1.5
--- phpdoc/en/features/error-handling.xml:1.4 Sun Aug 6 12:04:09 2000
+++ phpdoc/en/features/error-handling.xml Sun Aug 20 03:49:33 2000
@@ -2,141 +2,162 @@
  <title>Error handling</title>
  
  <para>
- There are several types of errors and warnings in PHP. They are:
+ There are several types of errors and warnings in PHP. They are:
 
- <table>
- <title>PHP error types</title>
- <tgroup cols="4">
- <thead>
- <row>
- <entry>value</entry>
- <entry>symbolic</entry>
- <entry>description</entry>
- <entry>note</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>1</entry>
- <entry>E_ERROR</entry>
- <entry>fatal run-time errors</entry>
- <entry></entry>
- </row>
- <row>
- <entry>2</entry>
- <entry>E_WARNING</entry>
- <entry>run-time warnings (non fatal errors)</entry>
- <entry></entry>
- </row>
- <row>
- <entry>4</entry>
- <entry>E_PARSE</entry>
- <entry>compile-time parse errors</entry>
- <entry></entry>
- </row>
- <row>
- <entry>8</entry>
- <entry>E_NOTICE </entry>
- <entry>
- run-time notices (less serious than warnings)
- </entry>
- <entry></entry>
- </row>
- <row>
- <entry>16</entry>
- <entry>E_CORE_ERROR</entry>
- <entry>fatal errors that occur during PHP's initial startup</entry>
- <entry>PHP 4 only</entry>
- </row>
- <row>
- <entry>32</entry>
- <entry>E_CORE_WARNING</entry>
- <entry>warnings (non fatal errors) that occur during PHP's initial startup</entry>
- <entry>PHP 4 only</entry>
- </row>
- <row>
- <entry>64</entry>
- <entry>E_COMPILE_ERROR</entry>
- <entry>fatal compile-time errors</entry>
- <entry>PHP 4 only</entry>
- </row>
- <row>
- <entry>128</entry>
- <entry>E_COMPILE_WARNING</entry>
- <entry>compile-time warnings (non fatal errors)</entry>
- <entry>PHP 4 only</entry>
- </row>
- <row>
- <entry>256</entry>
- <entry>E_USER_ERROR</entry>
- <entry>user-generated error message</entry>
- <entry>PHP 4 only</entry>
- </row>
- <row>
- <entry>512</entry>
- <entry>E_USER_WARNING</entry>
- <entry>user-generated warning message</entry>
- <entry>PHP 4 only</entry>
- </row>
- <row>
- <entry>1024</entry>
- <entry>E_USER_NOTICE </entry>
- <entry>user-generated notice message</entry>
- <entry>PHP 4 only</entry>
- </row>
- <row>
- <entry></entry>
- <entry>E_ALL</entry>
- <entry>all of the above</entry>
- <entry>PHP 4 only</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </para>
-
- <para>
- The above values (either numerical or sombolic) are used to build up a
- bitmask that specifies which errors to report. You can use the bitwise
- operators '|','&amp;' and '~' to combine theese values or mask out certain
- types of errors. The default settings that will report anything but notice
- messages are <literal>E_ALL & ~E_NOTICE</literal> for PHP4 and 7 for PHP 3
- (PHP 3 does not support the symbolic constants).
- </para>
+ <table>
+ <title>PHP error types</title>
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>Value</entry>
+ <entry>Constant</entry>
+ <entry>Description</entry>
+ <entry>Note</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>1</entry>
+ <entry>E_ERROR</entry>
+ <entry>fatal run-time errors</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>2</entry>
+ <entry>E_WARNING</entry>
+ <entry>run-time warnings (non fatal errors)</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>4</entry>
+ <entry>E_PARSE</entry>
+ <entry>compile-time parse errors</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>8</entry>
+ <entry>E_NOTICE </entry>
+ <entry>
+ run-time notices (less serious than warnings)
+ </entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>16</entry>
+ <entry>E_CORE_ERROR</entry>
+ <entry>fatal errors that occur during PHP's initial startup</entry>
+ <entry>PHP 4 only</entry>
+ </row>
+ <row>
+ <entry>32</entry>
+ <entry>E_CORE_WARNING</entry>
+ <entry>warnings (non fatal errors) that occur during PHP's initial startup</entry>
+ <entry>PHP 4 only</entry>
+ </row>
+ <row>
+ <entry>64</entry>
+ <entry>E_COMPILE_ERROR</entry>
+ <entry>fatal compile-time errors</entry>
+ <entry>PHP 4 only</entry>
+ </row>
+ <row>
+ <entry>128</entry>
+ <entry>E_COMPILE_WARNING</entry>
+ <entry>compile-time warnings (non fatal errors)</entry>
+ <entry>PHP 4 only</entry>
+ </row>
+ <row>
+ <entry>256</entry>
+ <entry>E_USER_ERROR</entry>
+ <entry>user-generated error message</entry>
+ <entry>PHP 4 only</entry>
+ </row>
+ <row>
+ <entry>512</entry>
+ <entry>E_USER_WARNING</entry>
+ <entry>user-generated warning message</entry>
+ <entry>PHP 4 only</entry>
+ </row>
+ <row>
+ <entry>1024</entry>
+ <entry>E_USER_NOTICE </entry>
+ <entry>user-generated notice message</entry>
+ <entry>PHP 4 only</entry>
+ </row>
+ <row>
+ <entry></entry>
+ <entry>E_ALL</entry>
+ <entry>all of the above, as supported</entry>
+ <entry></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
 
- <para>
- The settings can be changed in the ini file with the error_reporting
- directive. It can also be set in your Apache httpd.conf file with
- the php_error_reporting (php3_error_reporting for PHP 3)
- directive or lastly it may be set at runtime within a script using
- the <function>error_reporting</function> function.
- </para>
+ <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
+ <filename>php.ini</filename>, however, and that no bitwise
+ operators will be understood within <filename>php3.ini</filename>.
+ </para>
+ <para>
+ In PHP 4, the default <link
+ linkend="ini.error-reporting">error_reporting</link> 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 <link
+ linkend="ini.error-reporting">error_reporting</link> setting there
+ must be numeric; hence, it is <literal>7</literal>.
+ </para>
 
- <warning>
- <para>
- When upgrading code or servers from PHP 3 to PHP 4 you should check
- theese settings and calls to <function>error_reporting</function> or
- you might disable reporting the new error types, especially E_COMPILE_ERROR.
- This may lead to empty documents without any feedback of what happened
+ <para>
+ The initial setting can be changed in the ini file with the <link
+ linkend="ini.error-reporting">error_reporting</link> directive, in
+ your Apache <filename>httpd.conf</filename> file with the
+ php_error_reporting (php3_error_reporting for PHP 3) directive, and
+ lastly it may be set at runtime within a script by using the
+ <function>error_reporting</function> function.
+ </para>
+
+ <warning>
+ <para>
+ When upgrading code or servers from PHP 3 to PHP 4 you should
+ check these settings and calls to
+ <function>error_reporting</function> or you might disable
+ reporting the new error types, especially E_COMPILE_ERROR. This
+ may lead to empty documents without any feedback of what happened
          or where to look for the problem.
         </para>
- </warning>
+ </warning>
         
- <para>
- All <link linkend="language.expressions">PHP expressions</link> can also be called
- with the "@" prefix, which turns off error reporting for that particular
- expression. If an error occurred during such an expression and the
- <link linkend="ini.track-errors">track_errors</link> feature
- is enabled, you can find the error message in the global variable
+ <para>
+ All <link linkend="language.expressions">PHP expressions</link> can
+ also be called with the "@" prefix, which turns off error reporting
+ for that particular expression. If an error occurred during such
+ an expression and the <link
+ linkend="ini.track-errors">track_errors</link> feature is enabled,
+ you can find the error message in the global variable
    $php_errormsg.
   </para>
 
- <warning>
- <para>
- Currently the "@" prefix will even disable error reporting for critical
- errors that will terminate script execution.
- </para>
- </warning>
+ <warning>
+ <para>
+ Currently the <link linkend="language.operators.errorcontrol">@
+ error-control operator</link> prefix will even disable error
+ reporting for critical errors that will terminate script
+ execution. Among other things, this means that if you use <link
+ linkend="language.operators.errorcontrol">@</link> to suppress
+ errors from a certain function and either it isn't available or
+ has been mistyped, the script will die right there with no
+ indication as to why.
+ </para>
+ </warning>
 
  </chapter>