Свои ошибки в javascript, пример использования конструкции try => catch

Требуется создать свой тип ошибок в javascript на основе встроенного класса Error. Приведите пример создания своего объекта ошибки и взаимодействия его с конструкцией try… catch( + проверка типа ошибки с помощью instanceof)

Добавить Комментарий
// Объявление
function PropertyError(property) {
   this.name = "PropertyError"; // имя ошибки
   this.property = property; // дополнительно указываем переменную в которой ошибка
    this.message = "Ошибка в свойстве " + property; // сообщение
    if (Error.captureStackTrace) {
        Error.captureStackTrace(this, PropertyError); // стек вызова
    } else {
       this.stack = (new Error()).stack; // стек вызова
    }
}
 
// наследуем от Error
PropertyError.prototype = Object.create(Error.prototype);
 
// Генерация ошибки
 function readUser(data) {
    var user = JSON.parse(data);
   if (!user.age) {
       throw new PropertyError("age");
    }
    if (!user.name) {
       throw new PropertyError("name");
    }
    return user;
 }
 
// Запуск и try..catch
try {
    var user = readUser('{ "age": 25 }');
 } catch (err) {
    if (err instanceof PropertyError) { // проверяем класс ошибки
       if (err.property == 'name') {
          // если в данном месте кода возможны анонимы, то всё нормально
          alert("Здравствуйте, Аноним!");
       } else {
          alert(err.message); // Ошибка в свойстве ...
       }
    } else if (err instanceof SyntaxError) {
       alert("Ошибка в синтаксисе данных: " + err.message);
    } else {
       throw err; // неизвестная ошибка, не знаю что с ней делать
    }
 }
Добавить Комментарий

Ваш ответ

Размещая свой ответ, вы соглашаетесь с правилами сайта.