Re: How to get error context

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I maid the modifications you suggested. For the error
context when i display it, it gives a lot of
information, but not easy to understand how the array
is structured. If somebody knows about a site
explaining how to access the context it would be
great.
I also modified the error reporting to E_ALL as you
suggested. Now an other question arise: For the
connection to the database if i put a wrong username
or password the error is reported automatically to the
function that i defined as the error handling
function, but for the next statement (see code below)
if i put a wrong database name the error is not
reported automatically, i have to trigger it using
triger_error. So i'm wondering if there are some rules
that can help me know if an error will be reported
automatically or not. here is my code after
modification:

<?php
	function error_handler($errno, $errstr, $filename,
$lineno, $errcontext)
	{
		echo "handling reported error<br>";
		
  		switch($errno) {
				case E_USER_ERROR: $type = "E_USER_ERROR";break;	
				case E_USER_WARNING: $type =
"E_USER_WARNING";break;	
				case E_USER_NOTICE: $type = "E_USER_NOTICE";break;
				case E_ERROR: $type = "E_ERROR";break;
				case E_WARNING: $type = "E_WARNING";break;
				case E_PARSE: $type = "E_PARSE";break;
				case E_NOTICE: $type = "E_NOTICE";break;
				case E_CORE_ERROR: $type = "E_CORE_ERROR";break;
				case E_CORE_WARNING: $type =
"E_CORE_WARNING";break;	
				case E_COMPILE_ERROR: $type =
"E_COMPILE_ERROR";break;
				case E_STRICT: $type = "E_STRICT";break;	
				case E_COMPILE_WARNING: $type =
"E_COMPILE_WARNING";break;	
				case E_RECOVERABLE_ERROR: $type =
"E_RECOVERABLE_ERROR";break;	
				default: echo "<br>This is an error not listed";
				
		}
		$str = "";
		$str .= "<br><br>ERROR TYPE: ". $type;
		$str .= "<br><br>ERROR Number: ". $errno;
		$str .= "<br>ERROR MESSAGE: ". $errstr;
		$str.= "<br>File: ". $filename;
		$str.= "<br>Line number: ". $lineno;
		echo $str;
		echo "Context: <br>";
		print_r($errcontext);
	}
	

	


echo "<h1>Testing set_error_handler</h1>";

error_reporting(E_ALL);  
set_error_handler('error_handler'); 
mysql_connect("localhost", "admin", "admin"); 
mysql_select_db("wrongdb") or trigger_error("wrong
database");

?>
--- Jim Lucas <lists@xxxxxxxxx> wrote:

> It Maq wrote:
> > Hi,
> > 
> > i need help because I'm unable to retrieve error's
> context. Below is the code that is working perfectly
> except the context that is not displayed:
> > 
> > <?php
> >     function error_handler($errno, $errstr,
> $filename, $lineno, $errcontext)
> >     {
> >         
> 
> try doing a print_r($errcontext) here and see what
> you get?
> 
> maybe the zero index does not exist.
> 
> >           
> >         $str = "";
> >         $str .= "<br><br>ERROR Number: ". $errno;
> >         $str .= "<br>ERROR MESSAGE: ". $errstr;
> >         $str.= "<br>File: ". $filename;
> >         $str.= "<br>Line number: ". $lineno;
> >         $str.= "<br>Context: ". $errcontext[0];
> >         echo $str;
> >         
> > 
> >     }
> > 
> > echo "<h1>Testing set_error_handler</h1>";
> > 
> 
> I have always used
> error_reporting(E_ALL);
> instead of this.
> > error_reporting(0);  
> > set_error_handler('error_handler'); 
> > ini_set('error_reporting', 0);
> 
> I have never seen the above line before.  This and
> the error_reporting(0) would 
> probably suppress all error messages generated by
> PHP.  Double check these 
> settings and make sure the you can still trigger an
> error with trigger_error() 
> if you have error_reporting() turned off.
> 
> > 
> > //trigger_error("The string for testing the
> error", E_USER_WARNING);
> > $ourFileName = "testFile.txt";
> > $fh = fopen($ourFileName, 'X');// or die("Can't
> open file");
> > fclose($fh);
> > 
> > 
> > ?>



      ____________________________________________________________________________________
Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ 



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux