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
DOMErrorz właściwościąnameustawioną nanameoraz z właściwościąmessageustawioną 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 {
};