Дмитрий Фандорин
Error в JavaScript
В программировании на JavaScript могут возникать ошибки, которые могут привести к неполадкам в работе приложения. В этой статье мы рассмотрим, какие бывают стандартные ошибки в JavaScript и как создавать собственные типы ошибок.
Описание работы
Класс Error является встроенным объектом в JavaScript, который представляет ошибку. Класс Error имеет два свойства: message и name. Свойство message содержит сообщение об ошибке, а свойство name содержит имя ошибки.
Объекты Error в JavaScript предоставляют ценную информацию о произошедших ошибках, включая тип ошибки, сообщение и стек вызовов. Однако, просто получить объект Error недостаточно. Важно понимать, как правильно интерпретировать эту информацию, как создавать собственные типы ошибок и как использовать Error для отладки и анализа кода. Без этих знаний, работа с ошибками может стать непростой задачей. Чтобы глубоко разобраться с объектами Error и их применением, приходите на наш большой курс JavaScript с нуля. На курсе 198 уроков и 30 упражнений, AI-тренажеры для безлимитной практики с кодом и задачами 24/7, решение задач с живым ревью наставника, еженедельные встречи с менторами.
Создание объекта Error выглядит следующим образом:
new Error('Сообщение об ошибке');
Встроенные ошибки: SyntaxError, ReferenceError, TypeError, RangeError, URIError, EvalError, InternalError
JavaScript имеет несколько встроенных типов ошибок, которые могут возникнуть в процессе выполнения программы. Рассмотрим каждый тип ошибок более подробно.
- SyntaxError - возникает, когда в программе обнаруживается синтаксическая ошибка. Например, если вы забыли поставить точку с запятой в конце выражения:
SyntaxError: Unexpected token ;
- ReferenceError - возникает, когда попытка обратиться к несуществующей переменной или функции. Например, если вы попытаетесь получить значение несуществующей переменной:
ReferenceError: x is not defined
- TypeError - возникает, когда операция не может быть выполнена из-за типов данных. Например, если вы попытаетесь вызвать метод на undefined:
TypeError: Cannot read property 'method' of undefined
- RangeError - возникает, когда значение находится вне допустимого диапазона. Например, если вы попытаетесь создать массив с отрицательной длиной:
RangeError: Invalid array length
- URIError - возникает, когда функция, которая работает с URI, получает некорректный URI:
URIError: URI malformed
- EvalError - возникает, когда функция eval() получает некорректный код в качестве аргумента:
EvalError: Incorrect eval code
- InternalError - возникает, когда внутренняя ошибка JavaScript не может быть обработана:
InternalError: Too much recursion
Собственный класс ошибок
В JavaScript можно создавать свои собственные типы ошибок, которые наследуются от объекта Error. Создание собственного класса ошибок позволяет более точно определить тип ошибки и сообщение об ошибке.
Для создания собственного класса ошибок, необходимо объявить новый класс, который наследуется от объекта Error. В конструкторе класса можно задать свойства name и message, которые будут содержать название ошибки и описание ошибки соответственно.
Рассмотрим пример создания собственного класса ошибок в JavaScript:
class MyError extends Error {
constructor(message) {
super(message);
this.name = "MyError";
}
}
throw new MyError("This is my error");
В этом примере мы создали новый класс MyError, который наследуется от объекта Error. В конструкторе класса мы задали свойство name равным "MyError", а свойство message - переданный аргумент. Для вызова ошибки мы использовали ключевое слово throw и передали экземпляр нашего класса MyError с переданным сообщением.
Заключение
В итоге, мы рассмотрели стандартные ошибки, которые могут возникнуть в процессе выполнения программы на JavaScript, а также научились создавать собственные типы ошибок. Создание собственных классов ошибок позволяет более точно определить тип ошибки и сообщение об ошибке, что упрощает процесс отладки программы.
Работа с ошибками является неотъемлемой частью разработки программного обеспечения. Для создания надежных и отказоустойчивых приложений необходимо не только уметь обрабатывать исключения, но и предотвращать их возникновение, используя лучшие практики программирования и инструменты статического анализа кода. Если вы хотите научиться писать код, который минимизирует вероятность ошибок и легко поддается отладке, обратите внимание на курс JavaScript Advanced. В первых 3 модулях уже доступно бесплатное содержание — начните погружаться в мир продвинутого JavaScript прямо сегодня.
Постройте личный план изучения Javascript до уровня Middle — бесплатно!
Javascript — часть карты развития Frontend
100+ шагов развития
30 бесплатных лекций
300 бонусных рублей на счет
Бесплатные лекции
Все гайды по Javascript
Лучшие курсы по теме

Основы JavaScript
Антон Ларичев
TypeScript с нуля
Антон Ларичев