DOMException#
DOMException.code#
Właściwość code
zwraca kod danego wyjątku w postaci liczby całkowitej, zależnej od rodzaju wyjątku, który zainicjowany został w czasie tworzenia wyjątku.
Składnia#
Samo wywołanie i poszczególne jego części najlepiej objaśnić na zapisie składniowym:
var exception_code = domException.code;
gdzie poszczególne człony oznaczają:
exception_code
- kod wyjątku w postaci liczby całkowitej.domException
- wyjątek będący obiektem kontekstu.
Z perspektywy specyfikacji Web IDL mamy tutaj do czynienia z polem wyjątku code
, a nie atrybutem interfejsu. W praktycznych implementacjach JS pola wyjątków w definicjach Web IDL traktuje się identycznie jak właściwości obiektów JS.
Tak naprawdę właściwość code
zwraca wartość, która przechowywana jest w odpowiedniej stałej, specyficznej dla każdego wyjątku. Kody wyjątków pozostawiono ze względów historycznych, w praktyce mogłyby wystarczyć zarezerwowane nazwy błędów.
Prosty przykład:
<script>
try{
document.appendChild(document); // generujemy błąd
}
catch(e){
document.write(e); // Opis zależny od przeglądarki
document.write("<br><br>");
document.write(e.code); // 3
document.write("<br>");
document.write(e.name); // HierarchyRequestError
document.write("<br>");
document.write(e.message); // Opis zależny od przeglądarki
document.write("<br><br>");
document.write(e.code == DOMException.HIERARCHY_REQUEST_ERR); // true
document.write("<br>");
document.write(e.HIERARCHY_REQUEST_ERR == DOMException.HIERARCHY_REQUEST_ERR); // true
document.write("<br>");
document.write(e.name == "HierarchyRequestError"); // true
document.write("<br><br>");
document.write(e.constructor); // function DOMException() { [native code] }, Firefox [object DOMException]
document.write("<br>");
document.write(e.__proto__); // [object DOMException] dla Opery i Chrome
document.write("<br>");
document.write(e.__proto__ == e.constructor.prototype); // true dla Opery i Chrome
}
</script>