В программировании есть три типа ошибок:

  • Ошибка синтаксиса
  • Ошибка выполнения
  • Логическая ошибка

Ошибка синтаксиса

Синтаксические ошибки возникают на этапе компиляции или интерпретации выполнения языка программирования.

Факт. Синтаксические ошибки также называются ошибками синтаксического анализа.

Например, отсутствует закрывающая скобка

<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