Przejdź do treści

Error - 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()
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.

Utworzenie własnej klasy wyjątku

Jeżeli chcesz, aby Twój program obsługiwał dodatkowe błędy, zdefiniuj własną klasę wyjątku, która dziedziczy po wbudowanej klasie Error:

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

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

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

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

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

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

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

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

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

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

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

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

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