Hola,
además de lo que se ha comentado, recordar que en la (nueva) versión 5, existe ya soporte para la gestión de excepciones:
Código:
// bloques try .. catch:
try {
...
}
catch (<excepción>) {
<manejardor_excepción>
}
...
// lanzar excepciones:
throw <excepción>;
Más información:
http://www.php.net/zend-engine-2.php
Saludos.