В программировании есть три типа ошибок:
- Ошибка синтаксиса
- Ошибка выполнения
- Логическая ошибка
Ошибка синтаксиса
Синтаксические ошибки возникают на этапе компиляции или интерпретации выполнения языка программирования.
Факт. Синтаксические ошибки также называются ошибками синтаксического анализа.
Например, отсутствует закрывающая скобка
<script type = "text/javascript">
<!--
window.print(;
//-->
</script>
Примечание. Эта ошибка затрагивает только текущий поток и останавливает его выполнение.
Ошибки выполнения
Ошибки времени выполнения возникают после фазы компиляции или интерпретации выполнения языка программирования.
Факт. Синтаксические ошибки также известны как исключения.
Например, вызов несуществующей функции.
<script type = "text/javascript">
<!--
window.printme();
//-->
</script>
Примечание. Эта ошибка затрагивает только текущий поток и останавливает его выполнение.
Логические ошибки
Логические ошибки возникают после этапа компиляции или интерпретации выполнения языка программирования и в основном из-за неправильной реализации бизнес-логики.
Факт. Синтаксические ошибки также известны как ошибки/дефекты.
Попробуй… поймай… наконец Заявление
Текущая версия javascript предлагает try-catch-finally и выдается для обработки исключений, возникающих во время выполнения.
<script type = "text/javascript">
<!--
try {
// Code to run
[break;]
throw [// error] // this statement will
// pass the control to catch with error/object
}
catch ( e ) {
// Code to run if an exception occurs
[break;]
}
[ finally {
// Code that is always executed regardless of
// an exception occurring
}]
//-->
</script>
Обычно попробуйте использовать пару с catch для обработки ошибок и, наконец, необязательный блок для обработки обязательной операции по закрытию базы данных, чтобы ограничить утечку памяти, а Throw — это специальная конструкция для создания и перемещения управления в блок catch или, наконец, с брошенным объектом.
Примеры
Вот пример, когда мы пытаемся вызвать несуществующую функцию, которая, в свою очередь, вызывает исключение. Посмотрим, как он поведет себя без
<html>
<head>
<script type = "text/javascript">
<!--
function myFunc() {
var a = 100;
alert("Value of variable a is : " + a );
}
//-->
</script>
</head>
<body>
<p>Click the following to see the result:</p>
<form>
<input type = "button" value = "Click Me" onclick = "myFunc();" />
</form>
</body>
</html>
Выход
Теперь попробуем перехватить это исключение с помощью try…catch и отобразить понятное сообщение. Вы также можете подавить это сообщение, если хотите скрыть эту ошибку от пользователя.
Пример оператора throw
<html>
<head>
<script type = "text/javascript">
<!--
function myFunc() {
var a = 100;
var b = 0;
try {
if ( b == 0 ) {
throw( "Divide by zero error." );
} else {
var c = a / b;
}
}
catch ( e ) {
alert("Error: " + e );
}
}
//-->
</script>
</head>
<body>
<p>Click the following to see the result:</p>
<form>
<input type = "button" value = "Click Me" onclick = "myFunc();" />
</form>
</body>
</html>
Выход
Вы можете вызвать исключение в одной функции, используя строку, целое число, логическое значение или объект, а затем вы можете перехватить это исключение либо в той же функции, что и выше, либо в другой функции, используя try…catch блок.
Метод onerror()
Обработчик событий onerror был первой функцией, упрощающей обработку ошибок в JavaScript. Событие error запускается для объекта окна всякий раз, когда на странице возникает исключение.
Обработчик событий onerror предоставляет три элемента информации для определения точного характера ошибки:
- Сообщение об ошибке — то же сообщение, которое браузер отобразит для данной ошибки.
- URL — файл, в котором произошла ошибка.
- Номер строки — номер строки в данном URL-адресе, вызвавший ошибку.
Вот пример, показывающий, как извлечь эту информацию.
Пример
<html>
<head>
<script type = "text/javascript">
<!--
window.onerror = function (msg, url, line) {
alert("Message : " + msg );
alert("url : " + url );
alert("Line number : " + line );
}
//-->
</script>
</head>
<body>
<p>Click the following to see the result:</p>
<form>
<input type = "button" value = "Click Me" onclick = "myFunc();" />
</form>
</body>
</html>
Выход
Вы можете отображать извлеченную информацию так, как считаете нужным.
Метод Onerror в html-теге
Вы можете использовать метод onerror, как показано ниже, для отображения сообщения об ошибке в случае возникновения проблем с загрузкой изображения.
<img src="myimage.gif" onerror="alert('An error occurred loading the image.')" />
Вы можете использовать onerror со многими тегами HTML для отображения соответствующих сообщений в случае ошибок.
Ссылка
https://www.tutorialspoint.com/javascript/javascript_error_handling.htm