Exceptions
Lorsqu’une erreur se produit, l’API IMu PHP lève une exception. L'exception est un objet IMuException. Il s’agit d’une sous-classe de la classe standard Exception de PHP.
Pour une gestion simple des erreurs, il suffit généralement d’intercepter l’exception et de la signaler sous forme de chaîne :
try { // ⋯ }catch (Exception $e) { echo "Error: $e"; exit(1); }
La classe IMuException remplace la méthode __toString de la classe Exception (qui est invoquée « magiquement » lorsque l’objet est utilisé en tant que chaîne) et renvoie un message d’erreur.
Pour gérer des erreurs IMu spécifiques, il est nécessaire de vérifier que l’exception est un objet IMuException avant de l’utiliser. La classe IMuException comprend une propriété appelée id. Il s’agit d’une chaîne de caractères contenant le code d’erreur interne IMu pour l’exception. Par exemple, vous pouvez intercepter l’exception levée lorsque la méthode connect d’un objet IMuSession échoue et essayer de vous connecter à un autre serveur :
$mainServer = 'server1.com'; $alternativeServer = 'server2.com'; $session = new IMuSession; $session->host = $mainServer; try { $session->connect(); } catch (IMuException $e) { // Check for specific SessionConnect error if ($e->id != 'SessionConnect') { echo "Error: $e"; exit(1); } $session->host = $alternativeServer; try { $session->connect(); } catch (Exception $e) { echo "Error: $e"; exit(1); } } /* * À ce stade, la session est connectée soit au serveur principal, * soit au serveur de remplacement. */

