Skip to content

Instantly share code, notes, and snippets.

@vsim1964
Last active August 19, 2023 12:32
Show Gist options
  • Save vsim1964/51d00f53a4fb6a83f1e326115b423d6b to your computer and use it in GitHub Desktop.
Save vsim1964/51d00f53a4fb6a83f1e326115b423d6b to your computer and use it in GitHub Desktop.
ОШИБКИ В JAVASCRIPT

‎‎​

/*
`throw` - это оператор в языке программирования JavaScript, который используется для генерации исключений (ошибок)
во время выполнения программы. Он не является методом, функцией, конструктором или классом.
Оператор `throw` позволяет явно создать исключение в вашем коде, чтобы сообщить о какой-либо проблеме или ошибке.
Когда `throw` вызывается, выполнение кода в текущем блоке прерывается, и программа начинает искать ближайший блок
`try-catch` для обработки этого исключения.
*/
function divide(a, b) {
if (b === 0) {
throw new Error("Деление на ноль недопустимо.");
}
return a / b;
}
try {
const result = divide(10, 0);
console.log("Результат:", result);
} catch (error) {
console.error("Произошла ошибка:", error.message);
}
/*
В этом примере, если в функцию `divide` передать `b` равное нулю, будет сгенерировано исключение с помощью `throw new Error(...)`.
Затем это исключение будет поймано блоком `catch`, который позволяет обработать ошибку без завершения программы.
*/
console.log("Программа начинается");
try {
console.log('Код с кострукцией try-catch');
// Попытка выполнить код, который может вызвать ошибку
let result = someUndefinedVariable + 10;
console.log(result); // Этот код не выполнится из-за ошибки
} catch (error) {
// Обработка ошибки
console.error("Произошла ошибка:", error.message);
console.error("Стек вызовов:", error.stack);
}
console.log("Программа продолжает работу");
/*
Когда вы используете try-catch, вы можете:
1. Предоставить более информативное сообщение об ошибке: Вы можете создавать более человеко-читаемые и
информативные сообщения об ошибках для ваших пользователей, вместо технических деталей, которые могут
быть не понятными.
2. Предпринять действия для коррекции: В блоке catch вы можете выполнять код, который помогает избежать
ошибки или восстановиться после неё, если это возможно. Например, можно использовать запасной вариант
данных, если чтение данных завершилось ошибкой.
3. Записать ошибки: Конструкция try-catch позволяет вам записывать ошибки в логи или отправлять их на
удалённый сервер для анализа, что может быть полезно для диагностики и улучшения вашего программного продукта.
Пожалуйста, помните, что использование error.stack может предоставить детальную информацию о стеке вызовов,
но в реальных приложениях на продакшене, для безопасности, лучше избегать вывода полного стека ошибки пользователю,
так как это может предоставить ненужную информацию злоумышленникам.
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment