Быстрый метод: Вы можете использовать конструктор Error для создания объекта Error и использовать его в качестве основы для определения пользовательских исключений.Этот метод обычно можно использовать, когда не существует нескольких экземпляров, в которых вам нужно выдавать пользовательские исключения.
let x = 3;
try {
x.pop();
} catch (e) {
throw new Error({
name: "My Exception",
message: "this is my custom error message..",
toString: function() { return `${this.name} : ${this.message}` }
});
}
Лучший метод: Создать класс CustomError и определить свой собственный конструктор для этого пользовательскогоучебный класс.Этот метод является лучшим и более надежным и может использоваться, когда вашему приложению требуются пользовательские исключения во многих местах.
class CustomError extends Error {
constructor(name, message, ...params) {
// Pass remaining arguments (including vendor specific ones) to parent
constructor
super(...params);
this.name = name;
this.message = message;
// Maintains proper stack trace for where our error was thrown (only available on V8)
if (Error.captureStackTrace) {
Error.captureStackTrace(this, CustomError);
}
}
}
let x = 3;
try {
x.pop();
} catch(e){
throw new CustomError('My Exception', 'this is my custom error message..', e);
}