DOMException | NN 6 IE nicht zutreffend DOM 1 |
Einige Operationen mit W3C-DOM-Objekten können, wenn etwas schief geht, Fehler verursachen, oder, wie es im Jargon von JavaScript 1.5 heißt, Ausnahmen zurückgeben. Das W3C-DOM definiert ein Objekt, das eine Codenummer übermittelt, die auf eine wohldefinierte (wenngleich knappe) Liste der Ausnahmen verweist. Wenn Sie beispielsweise versuchen, eine Textnode als Child-Objekt an eine andere Textnode anzuhängen, gibt die appendChild( )-Methode einer solchen Operation eine Ausnahme mit der Codenummer 3 zurück. Diese Nummer entspricht der Ausnahme, die auf einen Versuch hinweist, in einer DOM-Hierarchie eine unzulässige oder logisch unmögliche Aktion auszuführen (eine Textnode kann keine Child-Nodes haben). |
|
Die Übermittlung der vom DOM erzeugten Ausnahmemeldung an einen Skriptersteller ist Aufgabe der Hostumgebung, nicht des DOM. Da JavaScript 1.5 bereits über einen Ausnahmebehandlungsmechanismus verfügt, kam die Aufgabe, das DOMException-System mit der JavaScript-Ausnahmebehandlung zu vereinen, zunächst Netscape zu, wie dies in Netscape 6 implementiert ist. Der neue Mechanismus ermöglicht die Verarbeitung verschiedener Fehlerobjekttypen durch die Ausnahmebehandlung, sodass das ursprüngliche System nicht nur nicht beeinträchtigt, sondern der Mechanismus im Gegenteil auf das gesamte W3C-DOM-DOMException-Objekt und sogar auf einige Netscape-spezifische Fehler ausgedeht wurde. Die Verarbeitung der verschiedenen Arten von Ausnahmen findet nach wie vor im catch-Block einer try/catch-Konstruktion statt, und alle Informationen bezüglich der Ausnahme werden wie bisher als Objekt über einen einzigen Parameter an den catch-Block übermittelt. |
|
Das DOM-Ausnahmeobjekt von Netscape (das das W3C-DOMException-Objekt beinhaltet) erreicht den catch-Block mit einer längeren Liste zugeordneter Eigenschaften und Methoden als eine auf andere Ursachen zurückzuführende Ausnahme (z. B. der Versuch, eine nicht initialisierte JavaScript-Variable zu verwenden). Das wesentliche Unterscheidungsmerkmal eines DOMException-Objekts, das den anderen Typen fehlt, ist die code-Eigenschaft. Darüber hinaus gibt jeder Codewert zwischen 1 und 15 einen Ausnahmetyp an, der der formalen DOM-Spezifikation bis Level 2 bekannt ist. Diese Liste wird in Zukunft mit Sicherheit um zusätzliche Typen erweitert. Netscape verwendet für seine Liste der browserspezifischen Ausnahmen die Codenummern ab 1000. |
|
Wenn Sie echte W3C-DOM-Ausnahmen auf ihrem eigenen Ausführungspfad verarbeiten möchten, können Sie eine Konstruktion ähnlich der folgenden verwenden (die ein Anwachsen der DOMException-Liste in künftigen Versionen auf bis zu 999 Einträge ermöglicht): 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 } } |
|
Natürlich ist es äußerst unwahrscheinlich, dass Detailinformationen zu Ausnahmefehlern dem Benutzer von Nutzen sein werden, für Sie als Entwickler sind sie jedoch von unschätzbarem Wert. Weitere Informationen zur Ausnahmebehandlung finden Sie in der Abhandlung des error-Objekts in Kapitel 12. |
|
Objektmodellreferenz | |
errorObjectReference
|
|
Objektspezifische Eigenschaften | |
code |
|
Objektspezifische Methoden | |
Keine. |
|
Objektspezifische Ereignisbehandlungsroutineneigenschaften | |
Keine. |
code | NN 6 IE nicht zutreffend DOM 1 | |||||||||||||||||||||||||||||||||||||||||||||||
Schreibgeschützt | ||||||||||||||||||||||||||||||||||||||||||||||||
Stellt eine ganze Zahl bereit, die einem der definierten DOM-Fehlertypen entspricht. Die folgende Tabelle enthält eine Übersicht über die Codewerte und ihre äquivalenten Konstanten mit Hinweisen zu möglichen Ursachen für die jeweiligen Ausnahmefehler. |
||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
Beispiel | ||||||||||||||||||||||||||||||||||||||||||||||||
if (e.code == e.INVALID_CHARACTER_ERR) { // process for an illegal identifier character } |
||||||||||||||||||||||||||||||||||||||||||||||||
Wert | ||||||||||||||||||||||||||||||||||||||||||||||||
Integerwert |
||||||||||||||||||||||||||||||||||||||||||||||||
Standardwert | ||||||||||||||||||||||||||||||||||||||||||||||||
Abhängig vom Fehler. |