На этом шаге мы рассмотрим типы ошибок.
Ошибки, которые могут быть в программе, принято делить на три группы:
Синтаксические ошибки, их также называют ошибками времени компиляции (Compile-time error), наиболее легко устранимы. Их обнаруживает компилятор, а программисту остается только внести изменения в текст программы и выполнить повторную компиляцию.
Ошибки времени выполнения, они называются исключениями (exception), тоже, как правило, легко устранимы. Они обычно проявляются уже при первых запусках программы и во время тестирования.
При возникновении ошибки (исключения) в программе, запущенной из среды разработки, на экране появляется окно, в котором отображается информация о типе (классе) исключения и информационное сообщение, поясняющее причину возникновения исключения. На рисунке 1 приведен пример сообщения об ошибке, причина которой - отсутствие (недоступность) файла, нужного программе.
Рис.1. Пример сообщения об ошибке (программа запущена из среды разработки)
Если программа запущена из операционной системы, то при возникновении исключения на экране также появляется сообщение об ошибке, но тип ошибки в сообщении не указывается (рисунок 2).
Рис.2. Сообщение об ошибке при запуске программы из операционной системы
С алгоритмическими ошибками дело обстоит иначе. Компилятор обнаружить их не может. Поэтому даже в том случае, если в программе есть алгоритмические ошибки, компиляция завершается успешно. Убедиться в том, что программа работает правильно и в ней нет алгоритмических ошибок, можно только в процессе тестирования программы. Если программа работает не так, как надо, а результат ее работы не соответствует ожидаемому, то, скорее всего, в ней есть алгоритмические ошибки. Процесс поиска алгоритмических ошибок может быть достаточно трудоемким. Чтобы найти алгоритмическую ошибку, программисту приходится анализировать алгоритм, вручную "прокручивать" процесс его выполнения.
Более подробную информацию об поиске ошибок, организации такой работы, особенностях проведения и т.п. можно получить здесь.
На следующем шаге мы рассмотрим обработку ошибок.