DOMException | NN 6 IE s.o DOM 1
Certaines opérations sur les objets du DOM W3C peuvent déclencher des erreurs ou, dans le langage JavaScript 1.5, causer des exceptions, si quelque chose se passe mal. Le DOM W3C définit un objet qui comporte un numéro de code correspondant à une liste d´exceptions limitée mais bien définie. Par exemple, si vous essayez d´ajouter un noeud de texte en tant qu´enfant d´un autre noeud de texte, la méthode appendChild() d´une telle opération génère une exception dont le numéro de code est 3. Ce numéro correspond à l´exception qui signale une tentative d´action illégale ou logiquement impossible sur une hiérarchie du DOM (un noeud de texte ne peut pas avoir de noeuds enfants).
La transmission des informations d´exception du DOM à un auteur de script est une t che qui revient à l´environnement hôte, et non au DOM. Comme JavaScript 1.5 possède déjà un mécanisme de traitement des exceptions, c´est à Netscape que revenait la t che consistant à fondre le système DOMException et le traitement des exceptions JavaScript , tel qu´il est implémenté dans Netscape 6. Ce nouveau mécanisme permet à des types d´objets d´erreur différents de circuler dans les opérations de traitement des erreurs, laissant ainsi le système original intact, tout en élargissant le mécanisme pour accueillir non seulement l´objet DOMException du DOM W3C, mais aussi des erreurs spécifiques à Netscape. Le traitement des exceptions continue à avoir lieu dans le bloc catch d´une construction try/catch et toutes les informations concernant l´exception sont transmises au bloc catch comme un objet via un seul paramètre.
L´objet d´exception du DOM de Netscape (qui trouve son application dans l´objet DOMException W3C) arrive au bloc catch avec une liste de propriétés et méthodes associées plus longue qu´une exception provenant d´autres causes (par exemple, essai d´utilisation d´une variable JavaScript n´ayant pas été initialisée). La propriété distinctive d´un objet DOMException, et qui est absente des autres types, est la propriété code. De plus, toute valeur de code comprise entre 1 et 15 indique un type d´exception connu de la spécification du DOM officielle jusqu´au niveau 2. D´autres exceptions seront très probablement ajoutées à la liste ultérieurement. Netscape utilise des numéros de code commençant à 1000 pour sa liste d´exceptions spécifiques au navigateur.
Si vous voulez traiter de véritables exceptions du DOM W3C conformément à leur propre chemin d´exécution, vous pouvez utiliser une construction similaire à celle qui suit (qui permet à la liste DOMException de grossir jusqu´à 999 dans les itérations futures):
    try {
        // your DOM-related statement goes here
    }
    catch(e) {
        if (typeof e.code == "number") {
            if (e.code< 1000) {
                // process DOMException object here
            } else {
                // process Netscape DOM exception object here
            }
        } else {
            // process language or other exceptions here
        }
    }
Bien sûr, il est très peu probable que les détails des exceptions soient d´une quelconque utilité pour les utilisateurs, mais elles vous seront extrêmement précieuses pendant le développement. Pour de plus amples détails sur le traitement des exceptions, reportez-vous à l´objet error dans le chapitre 12.
Référence de modèle d'objet
    errorObjectReference
Propriétés spécifiques à l´objet
code
Méthodes spécifiques à l´objet
Aucune.
Propriétés de gestionnaire d´événements spécifiques à l´objet
Aucune.

code | NN 6 IE s.o DOM 1
| Lecture seule
Fournit un nombre entier correspondant à l´un des types d´erreurs du DOM définis. Le tableau suivant répertorie toutes les valeurs de code, les constantes équivalentes et des exemples des types de problèmes qui génèrent l´exception.
Code | Constante | Cause la plus probable
--- | --- | ---
1 | INDEX_SIZE_ERR | Un paramètre de décalage, sous forme de nombre entier, est hors plage de l´objet cible
2 | DOMSTRING_SIZE_ERR | La valeur de propriété, sous forme de chaîne, est trop volumineuse pour le langage hôte
3 | HIERARCHY_REQUEST_ERR | Ajout d´un enfant à un noeud incapable d´avoir des enfants
4 | WRONG_DOCUMENT_ERR | Insertion d´un noeud créé à partir d´un autre document (sans passer par le processus d´importation)
5 | INVALID_CHARACTER_ERR | Affectation d´un identificateur avec un caractère illégal
6 | NO_DATA_ALLOWED_ERR | Affectation de données à un noeud qui n´autorise pas les données
7 | NO_MODIFICATION_ALLOWED_ERR | Affectation d´une valeur à une propriété en lecture seule
8 | NOT_FOUND_ERR | Référence de paramètre de méthode à un noeud inexistant dans la portée de l´objet
9 | NOT_SUPPORTED_ERR | Appel d´une méthode XML uniquement dans un document HTML
10 | INUSE_ATTRIBUTE_ERR | Paramètre de méthode à un noeud Attr qui appartient déjà à un autre élément (sans cloner Attr d´abord)
11 | INVALID_STATE_ERR | Référence à un noeud qui n´est pas accessible en lecture ou en écriture
12 | SYNTAX_ERR | Syntaxe manquant de précision
13 | INVALID_MODIFICATION_ERR | Modification du type de noeud
14 | NAMESPACE_ERR | Absence de correspondance d´espace de nom ou nom mal formé
15 | INVALID_ACCESS_ERR | Accès interdit
Exemple
    if (e.code == e.INVALID_CHARACTER_ERR) {
        // process for an illegal identifier character
    }
Valeur
Nombre entier
Par défaut
Déterminé par l´erreur.