<?php
 // -- Classe MonException --
 class MonException extends Exception {
   public function __toString() {
     $m = $this->message ;
     $c = $this->code    ;
     return "Problème : ".$m." => Taille=".$c;
   }
 }
 // -- Classe Personnel --
 class Personnel
 { // -- Les propriétés --
  private $_nom   ;
  // -- Constructeur --
  function __construct($n) {
   try {
     if (empty($n))
       throw new Exception('Pas de création:Nom vide');
     $taille = strlen($n)                   ;
     $MonMessage="Nom '".$n."' trop petit"  ;
     if ($taille<2)
       throw new MonException($MonMessage,$taille);
     $this->_nom=$n                         ;
     echo "Création de ".$this->_nom.PHP_EOL;
   }
   catch (MonException $me) {
     echo $me->__toString().PHP_EOL;
   }
   catch (Exception $e) {
     echo $e->getMessage().PHP_EOL;
   }
  }
 }
 $UnePers1 = new Personnel("dupont");
 $UnePers2 = new Personnel("T")     ;
 $UnePers3 = new Personnel("")      ;
?>