PHP 5 soporta el generar (throw), e interceptar (catch) excepciones usando una sintaxis similar a la usada en Java. Todas las excepciones se basan en la clase estándar Exception.
<?php
    
class Calc {
        static function 
log($num) {
            if (
$num 0) {
                throw new 
Exception('Logaritmo de un '.
                            
'negativo es indefinido');
            } else {
                return 
log($num);
            }
        }
    }

 try {
        
Calc::log(-15);
 } catch (
Exception $e) {
  echo 
$e->getMessage();
 }
?>
... y ejecutando esto vemos
Logaritmo de un negativo es indefinido