один. Неправильно категоризировать
1. Синтаксическая ошибка
Также известные как ошибки диапазона, встречаются при компиляции на традиционных языках программирования и встречаются в JavaScript при интерпретации. Эти ошибки напрямую вызваны неожиданными символами в коде, а затем они не могут быть напрямую скомпилироваться/интерпретировать. Например, в строке кода не хватает заключительного кронштейна, что приводит к ошибке синтаксиса. Когда возникает синтаксическая ошибка, код не может быть выполнен. В JavaScript только код в том же потоке будет влиять на синтаксические ошибки. Код в других потоках и в других извне ссылочных файлах может продолжать выполняться, если он не зависит от кода, содержащего ошибку.
2. Ошибка времени выполнения
Также известен как исключение (исключение, после компиляции/интерпретатора). На этом этапе проблема не в синтаксисе кода, но в некоторых случаях попытка выполнения операции не является незаконной. например.
window.openmyfile ();
Поскольку метод OpenMyFile () не существует, браузер вернет исключение. Исключения влияют только на возникающий поток, и другие потоки JavaScript могут продолжать работать нормально.
два. Обработка ошибок
1. Функция обработки событий OneError
Это первый механизм, который поможет JavaScript в обработке ошибок. Когда на странице происходит исключение, событие ошибки запускается в окно. Например.
Кода -копия выглядит следующим образом:
<html>
<голова>
<title> onerror example </title>
<script type = "text/javascript">
window.onerror = function () {
оповещение («Произошла ошибка!»);
}
</script>
</head>
<body Onload = "function1 ()">
</body>
</html>
В приведенном выше коде, пытаясь вызвать несуществующую функцию во время загрузки страницы, будет поднято исключение. Появится сообщение об ошибке, что «ошибка произошла». Однако также отображается сообщение об ошибке браузера. Как скрыть это в браузере? Просто верните настоящий метод.
Кода -копия выглядит следующим образом:
<script type = "text/javascript">
window.onerror = function () {
оповещение («Произошла ошибка!»);
вернуть истину;
}
</script>
1) Удалить сообщение об ошибке
Обработчик Onerror предоставляет три вида информации, чтобы определить точный характер ошибки:
i) Сообщение об ошибке - Для данной ошибки браузер будет отображать ту же информацию;
ii) URL - в каком файле произошла ошибка;
Номер строки - номер строки, где ошибка произошла в данном URL.
См. Следующий пример методов доступа:
Кода -копия выглядит следующим образом:
<script type = "text/javascript">
window.onerror = function (smessage, surl, sline) {
Alert («Произошла ошибка!/n» + Smessage + »/nurl:" + surl + "/nline номер:" + sline);
вернуть истину;
}
</script>
2) Ошибка загрузки изображения
Объект Window - не единственный объект, который поддерживает функцию обработки событий Onerror, он также обеспечивает поддержку объектов изображения. Когда изображение не может быть успешно загружено из-за небываемости файла, событие ошибки запускается на изображении. Давайте посмотрим на пример:
<img src = ”amigo.jpg” oneerror = ”alert (« Произошла ошибка при загрузке изображения ') "/>
Приведенный выше пример непосредственно выделяет функцию обработчика событий Onerror в HTML. Конечно, вы также можете выделить функции обработки событий через сценарии. Прежде чем установить характеристики SRC изображения, вы должны подождать, пока страница будет полностью загружена. Код заключается в следующем:
Кода -копия выглядит следующим образом:
<html>
<голова>
<Tilt> тест ошибки изображения </title>
<script type = "text/javascript">
функция handleload () {
document.images [0] .onerror = function () {
оповещение («Произошла ошибка при загрузке изображения!»);
};
document.images [0] .src = "amigo.jpg";
}
</script>
</head>
<body onload = "handleload ()">
<img/>
<тело>
</html>
Примечание. В отличие от функции обработчика событий Onerror в окне, событие Onerror изображения имеет какие -либо дополнительные параметры информации.
3) Обработка синтаксических ошибок
Onerror также может обрабатывать синтаксические ошибки. Но следует отметить, что обработчик событий должен быть первым кодом, который появляется на странице, потому что, если ошибка синтаксиса возникает перед установкой обработчика событий, обработчик событий будет бесполезным.
ПРИМЕЧАНИЕ. Синтаксические ошибки полностью остановит выполнение кода.
Примечание. Основная проблема с использованием обработчика событий Onerror заключается в том, что он является частью BOM, поэтому ни один стандарт не может контролировать его поведение. Следовательно, разные браузеры используют это событие для значительного решения ошибок. например. Когда в IE происходит событие ошибки, нормальный код будет продолжать выполняться, все переменные и данные сохраняются и могут быть доступны через функцию обработчика событий Onerror. В Mozilla нормальное выполнение кода закончится, и все переменные и данные до того, как произойдет ошибка, будут уничтожены.
2. Попробуйте ... Установить заявление
ECMPScript Therid Edition представляет оператор Try… Catch. Например.
Кода -копия выглядит следующим образом:
пытаться {
window.openfile1 ();
оповещение («успешно называемый метод OpenFile1»);
} catch (Exception) {
оповещение («Исключение произошло!»);
} окончательно {
Alert («Попробуйте .. Catch Test Ends!»);
}
В отличие от Java, стандарт Ecmascript может иметь только один оператор Catch в операторе Try ... Catch, потому что JavaScript является языком слабого типа и не может указать конкретный тип исключения в пункте Catch. Независимо от типа ошибки, он обрабатывается одним и тем же оператором улова. Тем не менее, Mozilla расширила его и может добавить несколько операторов Catch, которые не рекомендуются использовать таким образом.
Наконец, используется для включения кода для выполнения независимо от того, происходит ли исключение, что полезно для закрытия открытых ссылок и освобождения ресурсов.
1) Вложенная попытка ... Заявление о пойре
Используется для решения проблем с ошибками в пунктах Catch, давайте посмотрим на пример, код заключается в следующем:
Кода -копия выглядит следующим образом:
пытаться {
eval ("a ++ b");
} catch (oexception) {
оповещение («Произошла ошибка!»);
пытаться {
var aerror = новый массив (1000000000000000000000000000000000000000000000000000000000000000000000000);
} catch (Exception) {
оповещение («Произошла ошибка в пункте« Полога »!»);
}
} окончательно{
оповещение ("завершено")
}
2) Объект ошибки
Когда возникает ошибка, JavaScript имеет базовый класс ошибок для броска. У него есть две характеристики:
i) имя - строка, представляющая неправильный тип
ii) Сообщение - Фактическое сообщение об ошибке.
Имя объекта ошибки соответствует своему классу и может быть одним из следующих значений:
Evalerror: ошибка возникает в функции eval ();
DrangeError: числовое значение превышает диапазон, который может представлять JavaScript;
Справочник: использовалась незаконная ссылка;
Синтаксисратор: синтаксическая ошибка произошла в вызове функции eval (), и браузер сообщил о других и более и более ошибках и не может быть обработана с помощью Try ... Catch;
TypeError: тип переменной не является тем, что, как ожидается, потребуется;
Urierror: произошла ошибка в функции Encodeuri или Decodeuri.
3) Определить тип ошибки
Следующие два метода могут быть использованы для определения типа ошибки. Первый метод основан на атрибуте имени исключения следующим образом:
Кода -копия выглядит следующим образом:
пытаться {
eval ("a ++ b");
} catch (oexception) {
if (oexception.name = "syntaxError") {
оповещение («Синтаксисерр произошел!»);
} еще {
оповещение («Произошла другая ошибка!»);
}
}
Оператор экземпляра используется во втором, а код выглядит следующим образом:
Кода -копия выглядит следующим образом:
пытаться {
eval ("a ++ b");
} catch (oexception) {
if (oexception экземпляр SyntaxError) {
оповещение («Синтаксисерр произошел!»);
} еще {
оповещение («Произошла другая ошибка!»);
}
}
4) бросить исключение заявление о броске исключений
В третьем издании Ecmascript он используется для целенаправленного броска исключений. Выброшенным объектом ошибки может быть строка, число, логическое значение или фактический объект или объект ошибки (его конструктор имеет только одну функцию, то есть сообщение об ошибке). Например. Выбросить новую ошибку («Произошла ошибка!»);
EG2
Кода -копия выглядит следующим образом:
Функция addTwonumber (a, b) {
if (arguments.length <2) {
Выбросить новую ошибку («Два числа необходимо передавать!»);
}
}
пытаться {
result = addTwonumber (90);
} catch (oexception) {
if (oexception экземпляр SyntaxError) {
Alert ("SyntaxError:" + oexception.message);
} else if (oexception encementof error) {
оповещение (oException.message);
}
}
Выше всего, все контент, описанный в этой статье. Надеюсь, вам это понравится.