Свои ошибки в 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; // неизвестная ошибка, не знаю что с ней делать
        }
     }
    
    Добавить Комментарий

    Ваш ответ

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