обработка ошибок
отловить синтаксическую ошибку
function isolatedFunction() { try { // ваш код функции здесь } catch (error) { if (error instanceof SyntaxError) { console.log("Синтаксическая ошибка: " + error.message); } else { throw error; } } }
В JavaScript оператор instanceof
используется для определения, принадлежит ли объект к определенному классу. Когда речь идет о перехвате ошибок с использованием instanceof
, обычно проверяются типы ошибок, такие как TypeError
, ReferenceError
, SyntaxError
, RangeError
, EvalError
и другие встроенные ошибки.
javascript
try { // код, который может вызвать ошибку } catch (error) { if (error instanceof TypeError) { // обработка ошибки типа TypeError } else if (error instanceof ReferenceError) { // обработка ошибки типа ReferenceError } else if (error instanceof SyntaxError) { // обработка ошибки типа SyntaxError } else { // обработка других типов ошибок } }
Это позволяет более гибко обрабатывать различные типы ошибок, предоставляя специфическое поведение для каждого типа.
В JavaScript существует несколько встроенных типов ошибок, каждый из которых соответствует определенной ситуации или условию выполнения кода. Вот некоторые из наиболее распространенных типов ошибок и их значение:
TypeError
: Возникает, когда операция не может быть выполнена из-за неправильного типа или значения. Например, попытка вызвать метод у недопустимого типа объекта.ReferenceError
: Сигнализирует о том, что используется недопустимая ссылка на переменную или свойство объекта, которое не было определено.SyntaxError
: Возникает, когда интерпретатор обнаруживает синтаксическую ошибку в коде, например, неправильное использование ключевых слов, пропущенные скобки и т.д.RangeError
: Означает, что значение выходит за пределы допустимого диапазона. Например, при вызове функции с аргументом, который находится за пределами допустимых значений.EvalError
: Этот тип ошибки используется для устаревшего исключения, которое ранее использовалось для ошибок, возникающих в функции eval().
ф
URIError: Возникает, когда глобальные функции URI (например, decodeURI, encodeURI) используются неправильно.
EvalError: Это исключение больше не используется в стандарте ECMAScript и обычно не возникает в современном коде, так как ошибка eval() теперь является частью типа SyntaxError.
InternalError: Этот тип ошибки предполагает, что что-то пошло не так при выполнении JavaScript движка, например, рекурсивное переполнение стека.
AggregateError: Новый тип ошибки, добавленный в ECMAScript 2020, предназначен для представления нескольких промисов, которые были отклонены.
URIError: Возникает, когда глобальные функции URI (например, decodeURI, encodeURI) используются неправильно.
EvalError: Это исключение больше не используется в стандарте ECMAScript и обычно не возникает в современном коде, так как ошибка eval() теперь является частью типа SyntaxError.
InternalError: Этот тип ошибки предполагает, что что-то пошло не так при выполнении JavaScript движка, например, рекурсивное переполнение стека.
AggregateError: Новый тип ошибки, добавленный в ECMAScript 2020, предназначен для представления нескольких промисов, которые были отклонены.
URIError: Возникает, когда глобальные функции URI (например, decodeURI, encodeURI) используются неправильно.
EvalError: Это исключение больше не используется в стандарте ECMAScript и обычно не возникает в современном коде, так как ошибка eval() теперь является частью типа SyntaxError.
InternalError: Этот тип ошибки предполагает, что что-то пошло не так при выполнении JavaScript движка, например, рекурсивное переполнение стека.
AggregateError: Новый тип ошибки, добавленный в ECMAScript 2020, предназначен для представления нескольких промисов, которые были отклонены.
PromiseRejectionEvent: Этот тип ошибки представляет собой событие, возникающее при отклонении промиса.
SecurityError: Возникает при нарушении политики безопасности, например, при попытке выполнить операцию, которая запрещена из-за ограничений безопасности браузера.
DOMException: Это исключение используется для представления ошибок, связанных с DOM (Document Object Model), таких как "SecurityError", "NotFoundError" и другие.
AbortError: Обычно возникает при вызове метода abort() на объекте, который может быть прерван, таком как запрос fetch или выполнение скрипта в веб-работниках.