Les exceptions interrompent l'exécution normale d'un programme, en raison d'une erreur qu'aurait rencontré PHP.
Certaines méthodes des objets du DOM sont susceptibles de lancer une exception suite à une erreur que rencontre PHP dans la tentative d'accomplir l'opération requise. Par exemple, la méthode importNode() de l'objet DOMDocument peut être interrompu durant son exécution par une exception si le noeud ne peut être importé.
Il est possible de capturer une exception avant qu'elle n'interrompt définitivement le programme. Pour cela, il suffit de placer le bloc de codes sensible dans le gestionnaire d'exception try...catch.
try { $noeud = $doc->importNode($nouv_noeud); } catch(DOMException $e){ //Gestion de l'exception echo $e->getMessage(); }
Les codes d'exception précisent la nature de l'erreur qui se serait produite durant le déroulement du programme.
Constante | Valeur | Description |
---|---|---|
Méthodes susceptibles de produire l'exception | ||
DOM_INDEX_SIZE_ERR | 1 | indique que l'index ou la taille est négatif ou plus grand que la valeur autorisée. |
DOMCharacterData->deleteData(), DOMCharacterData->insertData(), DOMCharacterData->replaceData(), DOMCharacterData->substringData() | ||
DOMSTRING_SIZE_ERR | 2 | indique que le texte fourni ne tient pas dans le type DOMString. |
DOM_HIERARCHY_REQUEST_ERR | 3 | indique qu'un noeud est inséré à un endroit non autorisé. |
DOMNode->appendChild(), DOMNode->insertBefore(), DOMNode->replaceChild() | ||
DOM_WRONG_DOCUMENT_ERR | 4 | indique qu'un noeud est utilisé dans un document différent de celui qui l'a créé. |
DOMDocument->saveXML(), DOMImplementation->createDocument(), DOMNode->appendChild(), DOMNode->insertBefore(), DOMNode->replaceChild() | ||
DOM_INVALID_CHARACTER_ERR | 5 | indique qu'un caractère invalide ou non autorisé est actuellement utilisé. |
DOMDocument->createAttribute(), DOMDocument->createAttributeNS(), DOMDocument->createElement(), DOMDocument->createElementNS(), DOMDocument->createEntityReference(), DOMDocument->createProcessingInstruction() | ||
DOM_NO_DATA_ALLOWED_ERR | 6 | indique que des données sont employées dans un noeud qui n'en supporte aucunes. |
DOM_NO_MODIFICATION_ALLOWED_ERR | 7 | indique qu'une tentative de modification a été opérée dans un objet qui n'en supportent aucunes. |
DOMElement->removeAttribute(), DOMElement->removeAttributeNode(), DOMElement->removeAttributeNS(), DOMElement->setAttribute(), DOMElement->setAttributeNode(), DOMElement->setAttributeNodeNS(), DOMElement->setAttributeNS(), DOMNode->appendChild(), DOMNode->insertBefore(), DOMNode->removeChild(), DOMNode->replaceChild() | ||
DOM_NOT_FOUND_ERR | 8 | indique qu'une tentative de référencer un noeud a été opérée alors qu'il n'existe pas dans ce contexte. |
DOMElement->removeAttributeNode(), DOMNode->removeChild(), DOMNode->insertBefore(), DOMNode->replaceChild() | ||
DOM_NOT_SUPPORTED_ERR | 9 | indique que l'implémentation ne supporte pas le type de l'objet ou de l'opération requis. |
DOM_INUSE_ATTRIBUTE_ERR | 10 | indique qu'une tentative d'ajout d'un attribut a été effectuée alors que cet attribut a déjà été utilisé ailleurs. |
DOM_INVALID_STATE_ERR | 11 | indique qu'une tentative d'utilisation d'un objet inexistant ou inutilisable a été effectuée. |
DOM_SYNTAX_ERR | 12 | indique qu'une chaîne de caractères invalide ou illégale a été utilisée. |
DOM_INVALID_MODIFICATION_ERR | 13 | indique qu'une tentative est de modification du type d'un objet fondamental a été opérée. |
DOM_NAMESPACE_ERR | 14 | indique qu'une tentative de création ou de modification d'un objet a été opérée alors que ce dernier n'est pas conforme à l'espace de noms en vigueur. |
DOMDocument->createAttributeNS(), DOMDocument->createElementNS(), DOMElement->setAttributeNS(), DOMImplementation->createDocument(), DOMImplementation->createDocumentType() | ||
DOM_INVALID_ACCESS_ERR | 15 | indique qu'un paramètre ou une opération n'est pas supportée par l'objet fondamental. |
DOM_VALIDATION_ERR | 16 | indique qu'une opération d'ajout ou de modification dun noeud risque de rendre le document invalide. |