source: trunk/src/inc/ErrorHandler.php@ 7716

Last change on this file since 7716 was 7661, checked in by rick, 15 years ago

Need to have <?php to make to parse properly under UNIX

File size: 4.2 KB
Line 
1<?php
2/*
3 * Project: NodeMap2.0
4 * File: ErrorHandler.class.php
5 * Purpose: Handling (PHP) errors generated by the application
6 */
7
8/*
9 * PHP errors:
10 * E_ERROR ( integer ) Fatal run-time errors. These indicate errors that can not be recovered from, such as a memory allocation problem. Execution of the script is halted.
11 * E_WARNING ( integer ) Run-time warnings (non-fatal errors). Execution of the script is not halted.
12 * E_PARSE ( integer ) Compile-time parse errors. Parse errors should only be generated by the parser.
13 * E_NOTICE ( integer ) Run-time notices. Indicate that the script encountered something that could indicate an error, but could also happen in the normal course of running a script.
14 * E_CORE_ERROR ( integer ) Fatal errors that occur during PHP's initial startup. This is like an E_ERROR, except it is generated by the core of PHP. since PHP 4
15 * E_CORE_WARNING ( integer ) Warnings (non-fatal errors) that occur during PHP's initial startup. This is like an E_WARNING, except it is generated by the core of PHP. since PHP 4
16 * E_COMPILE_ERROR ( integer ) Fatal compile-time errors. This is like an E_ERROR, except it is generated by the Zend Scripting Engine. since PHP 4
17 * E_COMPILE_WARNING ( integer ) Compile-time warnings (non-fatal errors). This is like an E_WARNING, except it is generated by the Zend Scripting Engine. since PHP 4
18 * E_USER_ERROR ( integer ) User-generated error message. This is like an E_ERROR, except it is generated in PHP code by using the PHP function trigger_error(). since PHP 4
19 * E_USER_WARNING ( integer ) User-generated warning message. This is like an E_WARNING, except it is generated in PHP code by using the PHP function trigger_error(). since PHP 4
20 * E_USER_NOTICE ( integer ) User-generated notice message. This is like an E_NOTICE, except it is generated in PHP code by using the PHP function trigger_error(). since PHP 4
21 * E_STRICT ( integer ) Enable to have PHP suggest changes to your code which will ensure the best interoperability and forward compatibility of your code. since PHP 5
22 * E_RECOVERABLE_ERROR ( integer ) Catchable fatal error. It indicates that a probably dangerous error occured, but did not leave the Engine in an unstable state. If the error is not caught by a user defined handle (see also set_error_handler()), the application aborts as it was an E_ERROR. since PHP 5.2.0
23 * E_ALL ( integer ) All errors and warnings, as supported, except of level E_STRICT in PHP < 6.
24 */
25
26/*
27 * Function: NodeErrorHandler
28 * Parameters: int $errno, string $errstr, string $errfile, int $errline, array $errcontext
29 * Function: Handling with errors, decides what log level it is and send it to LogHandler
30 */
31function NodeErrorHandler(int $errno, string $errstr, string $errfile, int $errline, array $errcontext) {
32 switch ($errno) {
33 case E_ERROR:
34 trigger_log(SYSLOG_ERR, $errstr, $errfile, $errline);
35 break;
36 case E_WARNING:
37 trigger_log(SYSLOG_WARNING, $errstr, $errfile, $errline);
38 break;
39 case E_PARSE:
40 trigger_log(SYSLOG_ERR, $errstr, $errfile, $errline);
41 break;
42 case E_NOTICE:
43 trigger_log(SYSLOG_NOTICE, $errstr, $errfile, $errline);
44 break;
45 case E_CORE_ERROR:
46 trigger_log(SYSLOG_ERR, $errstr, $errfile, $errline);
47 break;
48 case E_CORE_WARNING:
49 trigger_log(SYSLOG_WARNING, $errstr, $errfile, $errline);
50 break;
51 case E_COMPILE_ERROR:
52 trigger_log(SYSLOG_ERR, $errstr, $errfile, $errline);
53 break;
54 case E_COMPILE_WARNING:
55 trigger_log(SYSLOG_WARNING, $errstr, $errfile, $errline);
56 break;
57 case E_USER_ERROR:
58 trigger_log(SYSLOG_ERR, $errstr, $errfile, $errline);
59 break;
60 case E_USER_WARNING:
61 trigger_log(SYSLOG_WARNING, $errstr, $errfile, $errline);
62 break;
63 case E_USER_NOTICE:
64 trigger_log(SYSLOG_NOTICE, $errstr, $errfile, $errline);
65 break;
66 case E_STRICT:
67 trigger_log(SYSLOG_NOTICE, $errstr, $errfile, $errline);
68 break;
69 case E_RECOVERABLE_ERROR:
70 trigger_log(SYSLOG_ERR, $errstr, $errfile, $errline);
71 break;
72 default:
73 trigger_log(SYSLOG_NOTICE, $errstr, $errfile, $errline);
74 break;
75 }
76
77 /* Don't execute PHP internal error handler */
78 return true;
79}
80
81set_exception_handler('NodeErrorHandler');
Note: See TracBrowser for help on using the repository browser.