For Programmers: Free Programming Magazines  


Home > Archive > PHP Programming > February 2005 > How do I get PHP5's Exception Handling to catch a fatal error?









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author How do I get PHP5's Exception Handling to catch a fatal error?
Mike

2005-02-27, 8:56 pm

Last wend I decided to install
Apache 2.0.53-win32-x86-no_ssl
PHP 5.0.3
Smarty 2.6.7
MySQL essential-4.1.10-win32

I have apache up (Port 80 blocked at the router and firewall!) and I
have got
Smarty working. I haven't got around to installing MySQL. I am now in
chapter 8 'Error and Exception Handling' of
"Beginning PHP 5 and MySQL: From Novice to Professional", by W. Jason
Gilmore,
pub. Apress. I tried example Listing 8-1. Raising an Exception:
<?php
//Boilerplate
require('Smarty.class.php');
$smarty = new Smarty;

$smarty-> template_dir='C:\php5\includes\smarty\te
mplates\';
$smarty-> compile_dir='C:\php5\includes\smarty\tem
plates_c\';
$smarty-> config_dir='C:\php5\includes\smarty\conf
igs\';
$smarty-> cache_dir='C:\php5\includes\smarty\cache
\';

//Example 8.1
try {
$conn = mysql_connect("localhost1","webuser","secret");
if (! $conn) {
throw new Exception("Could not connect");
}
}
catch (Exception $e
) {
echo "Error (File: ".$e->getFile().", line ".$e->getLine()."):
".$e->getMessage();
}
?>

Note that in the book, on the echo statement, the $e-> was missing from
the
getFile(). I went ahead and added it.

Cutting to the chase, when I ran the above nothing happened. I checked
the
log and saw the following:

[27-Feb-2005 11:33:59] PHP Fatal error: Call to undefined function
mysql_connect() in
C:\Program Files\Apache Group\Apache2\htdocs\example81.php on line 13

I commented out everything in the try block except the throw statement
and
reran. It worked as expected. How do I get PHP to catch fatal errors?

BTW, error_reporting = E_ALL

--Thank you,
--Mike Jr.

Janwillem Borleffs

2005-02-27, 8:56 pm

Mike wrote:
> How do I get PHP to catch fatal
> errors?
>


You can only catch non-fatal errors. Fatal errors will always stop the
script because of their severity. Compare it with Java, which will stop
compiling when fatal errors occur...


JW



Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2010 codecomments.com