DOMExceptionNN 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.

codeNN 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.

 
CodeConstanteCause la plus probable
1INDEX_SIZE_ERRUn paramètre de décalage, sous forme de nombre entier, est hors plage de l´objet cible
2DOMSTRING_SIZE_ERRLa valeur de propriété, sous forme de chaîne, est trop volumineuse pour le langage hôte
3HIERARCHY_REQUEST_ERRAjout d´un enfant à un noeud incapable d´avoir des enfants
4WRONG_DOCUMENT_ERRInsertion d´un noeud créé à partir d´un autre document (sans passer par le processus d´importation)
5INVALID_CHARACTER_ERRAffectation d´un identificateur avec un caractère illégal
6NO_DATA_ALLOWED_ERRAffectation de données à un noeud qui n´autorise pas les données
7NO_MODIFICATION_ALLOWED_ERRAffectation d´une valeur à une propriété en lecture seule
8NOT_FOUND_ERRRéférence de paramètre de méthode à un noeud inexistant dans la portée de l´objet
9NOT_SUPPORTED_ERRAppel d´une méthode XML uniquement dans un document HTML
10INUSE_ATTRIBUTE_ERRParamètre de méthode à un noeud Attr qui appartient déjà à un autre élément (sans cloner Attr d´abord)
11INVALID_STATE_ERRRéférence à un noeud qui n´est pas accessible en lecture ou en écriture
12SYNTAX_ERRSyntaxe manquant de précision
13INVALID_MODIFICATION_ERRModification du type de noeud
14NAMESPACE_ERRAbsence de correspondance d´espace de nom ou nom mal formé
15INVALID_ACCESS_ERRAccè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.