0Pricing
JavaScript Academy · Урок

try/catch/finally, throw и пользовательские ошибки

Используйте try/catch/finally, выбрасывайте простые ошибки с помощью throw и создайте небольшую пользовательскую ошибку Error для более понятных сообщений

«try/catch/finally, throw и пользовательские ошибки» — бесплатный урок JavaScript Academy на CoddyKit. Это урок 1 из 2. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения JavaScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс JavaScript Academy содержит 2 уроков всего.

Введение в обработку ошибок

Цель: безопасно обрабатывать ошибки и сохранять стабильность программ.

  • Основы обработки исключений
  • Выбрасывание ошибки с понятным сообщением
  • Завершающие действия для очистки
  • Небольшая пользовательская ошибка
try/catch/finally, throw и пользовательские ошибки — иллюстрация 1

Основы обработки ошибок

Оборачивайте рискованные операции в блок обработки исключений. В обработчике показывайте короткое и полезное сообщение.

// try/catch around risky code
try {
  const data = JSON.parse("{\"name\":\"Ayla\"}");
  console.log("Parsed:", data.name);
} catch (e) {
  // e.message is short and useful on mobile
  console.log("Failed to parse:", e.message);
}
try/catch/finally, throw и пользовательские ошибки — иллюстрация 2

Основы выбрасывания ошибок

Используйте конструкцию для выбрасывания новой ошибки с сообщением, чтобы остановить выполнение и объяснить причину проблемы.

// Throw when inputs are invalid
function doubleNumber(n) {
  if (typeof n !== "number") {
    throw new Error("Number required");
  }
  return n * 2;
}

try {
  console.log(doubleNumber(4));
  console.log(doubleNumber("4")); // will throw
} catch (e) {
  console.log("Error:", e.message);
}
try/catch/finally, throw и пользовательские ошибки — иллюстрация 3

Завершающие действия для очистки

Блок завершающих действий выполняется независимо от того, завершилась попытка успешно или с ошибкой, поэтому он полезен для закрытия ресурсов.

// finally runs after try/catch — great for cleanup
let opened = false;

try {
  opened = true;
  console.log("Opened:", opened);
  // Force an error to see finally still run
  JSON.parse("{ bad }");
} catch (e) {
  console.log("Caught:", e.message);
} finally {
  opened = false;
  console.log("Closed:", opened);
}
try/catch/finally, throw и пользовательские ошибки — иллюстрация 4

Пользовательская ошибка (кратко)

Создайте небольшую InputError для проблем с вводом. Используйте проверку принадлежности к типу, чтобы обрабатывать её отдельно.

// Make a small custom error
class InputError extends Error {
  constructor(message) {
    super(message);
    this.name = "InputError";
  }
}

function positive(n) {
  if (typeof n !== "number") {
    throw new InputError("Number required");
  }
  if (n <= 0) {
    throw new InputError("Must be positive");
  }
  return n;
}

try {
  console.log("OK:", positive(3));
  console.log("Fail:", positive(0));
} catch (e) {
  if (e instanceof InputError) {
    console.log("Input problem:", e.message);
  } else {
    // Unknown error: rethrow or log differently
    console.log("Unexpected:", e.message);
  }
}
try/catch/finally, throw и пользовательские ошибки — иллюстрация 5

Советы и контрольный список

Советы:

  • Проверяйте ввод заранее и выбрасывайте короткие сообщения.
  • Используйте завершающие действия для очистки: закрытия признаков, таймеров и тому подобного.
  • Не подавляйте ошибки: кратко записывайте их через log или выбрасывайте повторно.
try/catch/finally, throw и пользовательские ошибки — иллюстрация 6

Проверка завершающих действий

Быстрая проверка: поведение завершающих действий.

try/catch/finally, throw и пользовательские ошибки — иллюстрация 7

Повторение

Повторение: оборачивайте рискованный код в обработку исключений, выбрасывайте короткие полезные ошибки, используйте завершающие действия для очистки и определяйте небольшие пользовательские ошибки для более понятной обработки.

try/catch/finally, throw и пользовательские ошибки — иллюстрация 8

Часто задаваемые вопросы

Урок «try/catch/finally, throw и пользовательские ошибки» бесплатный?

Да — полный текст урока «try/catch/finally, throw и пользовательские ошибки» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс JavaScript Academy, подпишись на CoddyKit PRO. Курс JavaScript Academy содержит 2 уроков всего.

Чему я научусь в уроке «try/catch/finally, throw и пользовательские ошибки»?

Используйте try/catch/finally, выбрасывайте простые ошибки с помощью throw и создайте небольшую пользовательскую ошибку Error для более понятных сообщений Ты практикуешь JavaScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать JavaScript Academy?

Предыдущий опыт не требуется. JavaScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 2.

Сколько времени занимает урок «try/catch/finally, throw и пользовательские ошибки»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке JavaScript Academy?

Да. Каждый урок JavaScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. try/catch/finally, throw и пользовательские ошибки
  2. Защитное программирование и проверка входных данных
← Назад к JavaScript Academy