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

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View

Last weekend 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
pub. Apress.  I tried example Listing 8-1. Raising an Exception:
    $smarty = new Smarty;


  //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()."):

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

Cutting to the chase, when I ran the above nothing happened.  I checked
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
reran.  It worked as expected.  How do I get PHP to catch fatal errors?

BTW, error_reporting  =  E_ALL

--Thank you,
--Mike Jr.

Re: How do I get PHP5's Exception Handling to catch a fatal error?

Mike wrote:
Quoted text here. Click to load it

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...


Site Timeline