Чтобы создать пользовательский класс ошибки в JavaScript, используй синтаксис class для расширения встроенного объекта Error. Это позволяет добавить пользовательские свойства, сохраняя при этом стандартное поведение ошибок.
class ValidationError extends Error {
constructor(message, field) {
super(message); // Pass message to the base Error class
this.name = "ValidationError"; // Override default error name
this.field = field; // Add custom property
}
}
throw new ValidationError("Invalid email", "email");
extends Error — наследует всю встроенную функциональность ошибок, включая стек вызовов (stack traces)super(message) — должен быть вызван в первую очередь, чтобы правильно инициализировать базовый Error и установить this.messagethis.name — переопределяет стандартную метку "Error", облегчая идентификацию типа ошибки в логах и блоках catchthis.field — пользовательское свойство, которое содержит дополнительный контекст сверх стандартного сообщенияinstanceof:try {
throw new ValidationError("Invalid email", "email");
} catch (err) {
if (err instanceof ValidationError) {
console.log(err.field); // "email"
}
}
Вызов super(message) в конструкторе пользовательского класса ошибки должен быть выполнен перед любыми другими операторами, чтобы корректно инициализировать базовый объект Error и установить свойство this.message.
Новый — ещё не проверен сообществом
Вы