DOMError#
new DOMError()#
Interfejs DOMError może być wywoływany w roli konstruktora, dzięki czemu pozwala na bezpośrednie tworzenie nowych błędów DOM wprost z interfejsu. Przy tworzeniu nowego błędu DOM od razu ustalana jest jego nazwa oraz opcjonalna wiadomość.
Składnia#
Samo wywołanie i poszczególne jego części najlepiej objaśnić na zapisie składniowym:
var new_error = new DOMError(name [, message = ""]);
gdzie poszczególne człony oznaczają:
new_error
- obiekt będący nowym błędem DOM.name
- nazwa dla błędu w postaci łańcucha znakowego.message
- wiadomość dla błędu w postaci łańcucha znakowego. Parametr jest opcjonalny z domyślną wartością będącą pustym łańcuchem znakowym.
Algorytm wywołania konstruktora new DOMError(name, message)
nie jest skomplikowany. Dla lepszego zrozumienia tematu prezentuję go w całości:
- Zwróć nowy obiekt typu
DOMError
z właściwościąname
ustawioną naname
oraz z właściwościąmessage
ustawioną namessage
.
Obiekt zwracany przez konstruktor new DOMError()
implementuje interfejs DOMError, dlatego ma dostęp do wszystkich poleceń z tego interfejsu (oraz z kolejnych interfejsów w łańcuchu dziedziczenia).
Prosty przykład:
<script>
var newError = new DOMError("blad1", "Niedozwolona operacja");
document.write(newError.name); // blad1
document.write("<br>");
document.write(newError.message); // Niedozwolona operacja
document.write("<br><br>");
document.write(newError); // [object DOMError]
document.write("<br>");
document.write(newError.constructor); // function DOMError() { [native code] }
document.write("<br>");
document.write(newError.__proto__); // [object DOMErrorPrototype]
document.write("<br>");
document.write(newError.__proto__ == DOMError.prototype); // true
</script>
Na chwilę obecną jedynie przeglądarka Firefox pozwala na wywoływanie interfejsu DOMError w roli konstruktora, dlatego powyższy przykład należy testować właśnie w niej.
Konstruktor new DOMError()
pojawia się dopiero w specyfikacji DOM4.
Interfejs Web IDL#
[Constructor(DOMString name, optional DOMString message = "")] interface DOMError { };