Przejdź do treści

JS / Error - Kurs JavaScript (JS)

W tym rozdziale dowiesz się...

W jaki sposób obsługiwać błędy w języku JavaScript?

  • JS
    Error

    Jak utworzyć obiekt błędu (wyjątek)?

  • JS
    new Error

    Jak utworzyć nową instancję obiektu błędu (wyjątek)? Jak obsłużyć w programie swój własny rodzaj błędu?

  • JS
    EvalError

    Jaki wyjątek może zostać rzucony w przypadku błędu wykonania kodu?

  • JS
    RangeError

    Jaki wyjątek jest rzucany, jeżeli liczba przekracza dozwolony zakres?

  • JS
    ReferenceError

    Jaki wyjątek jest rzucany przy niewłaściwym odwołaniu do wartości?

  • JS
    SyntaxError

    Jaki wyjątek jest rzucany w przypadku błędu składni kodu?

  • JS
    TypeError

    Jaki wyjątek jest rzucany, gdy typ wartości jest niezgodny z oczekiwanym?

  • JS
    URIError

    Jaki wyjątek jest rzucany przy błędzie obsługi adresu URI/URL?

Error

Jak utworzyć obiekt błędu (wyjątek)?

Error()
Error(message)
Parametry:
String message - komunikat błędu (domyślnie: "")
Wartość:
Error - nowa instancja obiektu błędu

Działa identycznie jak konstrukcja new Error(...).

new Error

Jak utworzyć nową instancję obiektu błędu (wyjątek)? Jak obsłużyć w programie swój własny rodzaj błędu?

new Error()
new Error(message)
Parametry:
String message - komunikat błędu (domyślnie: "")
Wartość:
Error - nowa instancja obiektu błędu

Tworzy nową instancję obiektu błędu. Zwykle wykorzystuje się ją do rzucania wyjątków. Jeżeli chcesz, aby Twój program obsługiwał dodatkowe błędy, zdefiniuj własną klasę błędu, która dziedziczy po wbudowanej klasie Error.

Przykład:

var TestError = function (message) {
    var that = Error.call(this, message);
    that.name = TestError.prototype.name;
    return that;
};
TestError.prototype = Object.create(Error.prototype);
TestError.prototype.constructor = TestError;
TestError.prototype.name = "TestError";
 
try {
    throw new TestError("Houston, mamy problem.");
} catch (e) {
    e.toString(); // "TestError: Houston, mamy problem."
}

EvalError

Jaki wyjątek może zostać rzucony w przypadku błędu wykonania kodu?

EvalError()
new EvalError()
EvalError(message)
new EvalError(message)
Parametry:
String message - komunikat błędu (domyślnie: "")
Wartość:
EvalError - nowa instancja obiektu błędu

Ta klasa dziedziczy po Error.

EvalError.prototype.name

EvalError.prototype.name
Wartość:
String - "EvalError"

Przykład:

EvalError.prototype.name;     // "EvalError"
EvalError("test").toString(); // "EvalError: test"
new EvalError("test") + "";   // "EvalError: test"

RangeError

Jaki wyjątek jest rzucany, jeżeli liczba przekracza dozwolony zakres?

RangeError()
new RangeError()
RangeError(message)
new RangeError(message)
Parametry:
String message - komunikat błędu (domyślnie: "")
Wartość:
RangeError - nowa instancja obiektu błędu

Ta klasa dziedziczy po Error. Wskazuje, że liczba przekracza dozwolony zakres.

Błąd RangeError może zostać rzucony w postaci wyjątku z funkcji: Array, new Array, new Array.length, Number.prototype.toString, Number.prototype.toFixed, Number.prototype.toExponential, Number.prototype.toPrecision, Date.prototype.toISOString.

EvalError.prototype.name

RangeError.prototype.name
Wartość:
String - "RangeError"

Przykład:

RangeError.prototype.name;     // "RangeError"
RangeError("test").toString(); // "RangeError: test"
new RangeError("test") + "";   // "RangeError: test"

ReferenceError

Jaki wyjątek jest rzucany przy niewłaściwym odwołaniu do wartości?

ReferenceError()
new ReferenceError()
ReferenceError(message)
new ReferenceError(message)
Parametry:
String message - komunikat błędu (domyślnie: "")
Wartość:
ReferenceError - nowa instancja obiektu błędu

Ta klasa dziedziczy po Error. Wskazuje, że nastąpiło niewłaściwe odwołanie do wartości.

ReferenceError.prototype.name

ReferenceError.prototype.name
Wartość:
String - "ReferenceError"

Przykład:

ReferenceError.prototype.name;     // "ReferenceError"
ReferenceError("test").toString(); // "ReferenceError: test"
new ReferenceError("test") + "";   // "ReferenceError: test"

SyntaxError

Jaki wyjątek jest rzucany w przypadku błędu składni kodu?

SyntaxError()
new SyntaxError()
SyntaxError(message)
new SyntaxError(message)
Parametry:
String message - komunikat błędu (domyślnie: "")
Wartość:
SyntaxError - nowa instancja obiektu błędu

Ta klasa dziedziczy po Error. Wskazuje, że wystąpił błąd parsowania kodu.

Błąd SyntaxError może zostać rzucony w postaci wyjątku z funkcji: eval, new Function, RegExp, new RegExp, JSON.parse.

SyntaxError.prototype.name

SyntaxError.prototype.name
Wartość:
String - "SyntaxError"

Przykład:

SyntaxError.prototype.name;     // "SyntaxError"
SyntaxError("test").toString(); // "SyntaxError: test"
new SyntaxError("test") + "";   // "SyntaxError: test"

TypeError

Jaki wyjątek jest rzucany, gdy typ wartości jest niezgodny z oczekiwanym?

TypeError()
new TypeError()
TypeError(message)
new TypeError(message)
Parametry:
String message - komunikat błędu (domyślnie: "")
Wartość:
TypeError - nowa instancja obiektu błędu

Ta klasa dziedziczy po Error. Wskazuje, że typ wartości jest niezgodny z oczekiwanym.

Błąd TypeError może zostać rzucony w postaci wyjątku z funkcji:
Object.getPrototypeOf, Object.getOwnPropertyDescriptor, Object.getOwnPropertyNames, Object.create, Object.defineProperty, Object.defineProperties, Object.seal, Object.freeze, Object.preventExtensions, Object.isSealed, Object.isFrozen, Object.isExtensible, Object.keys,
Object.prototype.toLocaleString,
Function.prototype.toString, Function.prototype.apply, Function.prototype.call, Function.prototype.bind,
Array.prototype.toLocaleString, Array.prototype.every, Array.prototype.some, Array.prototype.forEach, Array.prototype.map, Array.prototype.filter, Array.prototype.reduce,
String.prototype.toString, String.prototype.valueOf,
Boolean.prototype.toString,
Number, new Number,
Number.prototype.toString, Number.prototype.valueOf,
Date.prototype.toString, Date.prototype.toDateString, Date.prototype.toTimeString, Date.prototype.toLocaleString, Date.prototype.toLocaleDateString, Date.prototype.toLocaleTimeString, Date.prototype.valueOf, Date.prototype.getTime, Date.prototype.getFullYear, Date.prototype.getUTCFullYear, Date.prototype.getMonth, Date.prototype.getUTCMonth, Date.prototype.getDate, Date.prototype.getUTCDate, Date.prototype.getDay, Date.prototype.getUTCDay, Date.prototype.getHours, Date.prototype.getUTCHours, Date.prototype.getMinutes, Date.prototype.getUTCMinutes, Date.prototype.getSeconds, Date.prototype.getUTCSeconds, Date.prototype.getMilliseconds, Date.prototype.getUTCMilliseconds, Date.prototype.getTimezoneOffset, Date.prototype.setTime, Date.prototype.setMilliseconds, Date.prototype.setUTCMilliseconds, Date.prototype.setSeconds, Date.prototype.setUTCSeconds, Date.prototype.setMinutes, Date.prototype.setUTCMinutes, Date.prototype.setHours, Date.prototype.setUTCHours, Date.prototype.setDate, Date.prototype.setUTCDate, Date.prototype.setMonth, Date.prototype.setUTCMonth, Date.prototype.setFullYear, Date.prototype.setUTCFullYear, Date.prototype.toUTCString, Date.prototype.toISOString, Date.prototype.toJSON,
new RegExp, RegExp,
JSON.stringify.

TypeError.prototype.name

TypeError.prototype.name
Wartość:
String - "TypeError"

Przykład:

TypeError.prototype.name;     // "TypeError"
TypeError("test").toString(); // "TypeError: test"
new TypeError("test") + "";   // "TypeError: test"

URIError

Jaki wyjątek jest rzucany przy błędzie obsługi adresu URI/URL?

URIError()
new URIError()
URIError(message)
new URIError(message)
Parametry:
String message - komunikat błędu (domyślnie: "")
Wartość:
URIError - nowa instancja obiektu błędu

Ta klasa dziedziczy po Error. Wskazuje, że funkcja obsługi adresu URI została użyta niezgodnie z jej definicją.

Błąd URIError może zostać rzucony w postaci wyjątku z funkcji: decodeURI, decodeURIComponent, encodeURI, encodeURIComponent.

URIError.prototype.name

URIError.prototype.name
Wartość:
String - "URIError"

Przykład:

URIError.prototype.name;     // "URIError"
URIError("test").toString(); // "URIError: test"
new URIError("test") + "";   // "URIError: test"
Facebook