Re: PHP5 Exception Handling

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

 



Gerard Samuel wrote:
Just bouncing a thought on you.
I currently have a default exception handler setup.
So far in the code, I throw an exception when something is wrong.
i.e. Missing file, invalid argument, failed db connection etc...
My thought was centering around if I still needed to use
try/catch in the code, since I have a default exception handler.
Normally, I would rethrow exceptions for it to bubble back up to the top,
where its caught, and something useful done with the stack.
So I removed all try/catch blocks, and its seems to be working as it should be.
Just wondering if there may be an "gotchas" with this chain of thought.
Or should I keep the try/catch blocks as it is???

I think you should leave them in. the idea behind the default exception handler is to catch uncaught exceptions - uncaught exceptions should be the exception rather than the rule.

also you don't have to rethrow exceptions, sometimes its very useful to just
catch (possibly ignore) and continue execution just past the catch block.


http://be.php.net/manual/en/function.set-exception-handler.php

<the gotcha>
tha manual states that execution stops after the exception handler in called,
which is fairly limiting.
</the gotcha>

Another way to look at it would be to specify that all 'pages'
are based on the following:

try {

// global include

// process some stuff

// do output

}
catch (Exception $e) {

// error - show 404 or something?	

}

another thing about exceptions, you can be
very specific about catching, also the catches
can be 'stacked':

try {

}
catch (DBException $e) {

}
catch (UnknownObject $e) {

}
catch (Exception $e) {

}

this implies that the code uses user defined
Exception subclasses. i.e. you can write your own
Exception classes that you can throw around :-)


Thanks


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