Ответы пользователя по тегу Исключения
  • Как создать свои ошибки в JS?

    @f_ban
    Не совсем понял, когда проверка выполняется, если в конструкторе, то воспользуйтесь деструктуризацией аргументов, и делайте проверки до инициализации свойств объекта - это как минимум наглядно покажет все ограничения на входные параметры конструктора.
    class Point {
      constructor(x, y, ...other) {
          if(other.length > 0){
            throw 'Only 2 number arguments';
          }
          if(typeof x !== 'number'){
            throw TypeError(`The first argument must be number but have got ${typeof x}`);
          }
          if(typeof y !== 'number'){
            throw TypeError(`The second argument must be number but have got ${typeof y}`);
          }
          
          this.x = x;
          this.y = y;
      }
    }


    Да, в JS можно написать throw 'Текст ошибки'; И это создаст вполне себе нормальный объект исключения класса Error. Также существуют разные стандартные классы исключений. Если требуется кастомный типизированый класс исключения, то просто унаследуйте новый класс от Error и используйте его в кострукции throw.

    На самом деле, не совсем понимаю, зачем проверку свойств объекта выделили в отдельный метод. Это нужно дл какой-то валидации вне конструктора?
    Ответ написан
    1 комментарий