Error в JavaScript

14 февраля 2026
Автор

Дмитрий Фандорин

В программировании на 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 прямо сегодня.

Стрелочка влевоtry...catch в JavaScript

Постройте личный план изучения Javascript до уровня Middle — бесплатно!

Javascript — часть карты развития Frontend

  • step100+ шагов развития
  • lessons30 бесплатных лекций
  • lessons300 бонусных рублей на счет

Бесплатные лекции

Все гайды по Javascript

Как работает метод trim() - JavaScriptКак работает метод toUpperCase() - JavaScriptКак работает метод toLowerCase() - JavaScriptКак работает метод substring() - JavaScriptКак работает метод startsWith() - JavaScriptКак работает метод split() - JavaScriptКак работает метод slice() - JavaScriptКак работает метод search() - JavaScriptКак работает метод replaceAll() - JavaScriptКак работает метод replace() - JavaScriptКак работает метод repeat() - JavaScriptКак работает метод padStart() - JavaScriptКак работает метод padEnd() - JavaScriptКак работает метод matchAll() - JavaScriptКак работает метод match() - JavaScriptКак работает метод localeCompare() - JavaScriptКак работает свойство length - JavaScriptКак работает метод lastIndexOf() - JavaScriptКак работает метод indexOf() - JavaScriptКак работает метод includes() - JavaScriptКак работает метод fromCodePoint() - JavaScriptКак работает метод fromCharCode() - JavaScriptКак работает метод endsWith() - JavaScriptКак работает метод concat() - JavaScriptКак работает метод codePointAt() - JavaScriptКак работает метод charCodeAt() - JavaScriptКак работает метод charAt() - JavaScript
Итератор в JavaScript
try...catch в JavaScriptError в JavaScript
Событие wheel в JavaScriptСобытие unload в JavaScriptСобытие touch в JavaScriptСобытие submit в JavaScriptСобытие scroll в JavaScriptСобытие reset в JavaScriptМетод .preventDefault() в JavaScriptСобытие mouseover в JavaScriptСобытие mouseout в JavaScriptСобытие load в JavaScriptСобытие keyup в JavaScriptСобытие keydown в JavaScriptСобытие invalid в JavaScriptСобытие input в JavaScriptСобытийная модель Event в JavaScriptОбъект события Event в JavaScriptСобытие DOMContentLoaded в JavaScriptСобытие dblclick в JavaScriptСобытие click в JavaScriptСобытие change в JavaScriptСобытие beforeunload в JavaScript
Как работает метод some() - JavaScriptКак работает метод reverse() - JavaScriptКак работает метод reduce() - JavaScriptКак работает метод map() - JavaScriptКак работает метод isArray() - JavaScriptКак работает метод indexOf() - JavaScriptКак работает метод includes() - JavaScriptКак работает метод from() - JavaScriptКак работает метод forEach() - JavaScriptКак работает метод flatMap() - JavaScriptКак работает метод flat() - JavaScriptКак работает метод findIndex() - JavaScriptКак работает метод find() - JavaScriptКак работает метод filter() - JavaScriptКак работает метод every() - JavaScriptМассивы в JavaScript
Открыть базу знаний

Лучшие курсы по теме

изображение курса

Основы JavaScript

Антон Ларичев
AI-тренажеры
Практика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.8
3 999 ₽ 6 990 ₽
Подробнее
изображение курса

TypeScript с нуля

Антон Ларичев
AI-тренажеры
Практика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.8
3 999 ₽ 6 990 ₽
Подробнее
изображение курса

Next.js - с нуля

Антон Ларичев
AI-тренажеры
Практика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.7
3 999 ₽ 6 990 ₽
Подробнее

Отправить комментарий