Сообщения об ошибках

Редактор кода

Это окно, предназначенное для ввода и редактирования исходных текстов программ. Отображаться может содержимое только одного файла проекта. Если открыто более одного файла, в верхней части редактора появляется строка вкладок, с помощью которой можно быстро переключаться между различными файлами, выбирая курсором мыши нужную вкладку.

Небольшая, но очень удобная особенность, которая есть у редакторов кода многих сред программирования, — это сворачивание кода. Если в каком-нибудь классе есть метод, занимающий своим кодом много места в редакторе, его можно свернуть, выигрывая тем самым не только рабочее место, но и делая код более читаемым. Для того чтобы свернуть содержимое кода метода, нужно щелкнуть мышью по значку минус в левом столбце. Для развертывания — по аналогии, на значке плюс.

С помощью синтаксического контроля программы интерпретатором Java выявляются конструкции (сочетание символов), недопустимые с точки зрения правил их построения, принятых в Java. Поиск осуществляется в автономном (фоновом) режиме, то есть в процессе написания кода программы, без запуска приложения.

Проблемы сборки проекта отображаются в представлении Problems и отмечаются (маркируются) в редакторе определенным образом с помощью различных маркеров: графических значков, подчеркиваний, информации в всплывающих информационных окнах и др.

В программах ошибки подразделяются на три основных типа: синтаксические (компиляции), выполнения и логические. «Ошибочные» места кода подчеркиваются волнистой красной линией.

Синтаксические ошибки обычно возникают из-за неправильного набора текста программы на клавиатуре: пропуск запятых, точек с запятой в конце оператора, пропуск скобок в методе, классе, незакрытые кавычки и другие неверно использованные синтаксические конструкции языка. Для поиска и устранения таких ошибок в арсенале Eclipse используется широкий набор программных средств: маркера, помощники в создании кода, дополнения и т.п.

Ошибки выполнения возникают в тех случаях, когда синтаксически правильная программа совершает какое-либо неверное действие в процессе своего исполнения. Например, ситуация — попытка деления на ноль, обработка отсутствующих данных, обращение к индексу массива, значение которого выходит за допустимые границы и т.д. Эти ошибки можно обнаружить только в процессе выполнения программы. Компилятор выдает сообщение в ходе работы программы, если ошибка обработана или распознана внутренними средствами.

Логические ошибки не приводят к прекращению выполнения программы в Eclipse. Информацию о них можно получить только после выполнения программы по неправильным результатам решения задачи. Логические ошибки являются следствием неправильного алгоритма программы, и среда разработки тут мало может помочь. Требуется вернуться на этап проектирования алгоритма, проверить его правильность и только затем приступить к исправлению.

Далее мы остановимся главным образом на устранении синтаксических ошибок и рассмотрим на примерах возможные способы и средства их устранения, предоставляемые Eclipse.

Если кликнуть мышью на строку с ошибкой, Eclipse откроет или сделает активным окно кода файла класса и выделит в коде «проблемное» место: метод, модификатор, тип, поле и т.д., которое вызывает ошибку компиляции.

Пример. Локализация и устранение ошибок в программе.

· Создайте новый класс ErrorTests.java и введите следующий код:

public class ErrorTests {

public static void main(String[] args) {

System.out.print(«Hello»);

}

}

· Добавьте синтаксическую ошибку путем удаления фигурной скобки, открывающей тело класса (рис. 8).

Рис. 8. Создание ошибки

 

· Щелкните «Сохранить». Проект соберется заново и проблемное место отобразится несколькими способами (рис 9):

· В представлении Problems, проблемы можно пролистывать.

 

 

· В представлениях Package Explorer, Type, Hierarchy или Outline проблемные метки появляются на всех элементах Java, вызывающих проблемы, а так же на их родительских элементах.

· В редакторе в вертикальной линейке, отображается маркер напротив строки, вызывающей проблему.

· Волнистые линии могут появится под словом или символом, являющимся причиной ошибки, и

Рис. 9. Отображение ошибок

 

· Вы можете навести курсор на маркер в вертикальной линейке для отображения описания ошибки (рис. 10).

Рис. 10. Комментарий к ошибке

· Щелкните кнопку«Закрыть» ("X") на вкладке редактора, что бы его закрыть.

· В представлении Problems, выберите проблему из списка. Открыв его контекстное меню и выберите «Go To» (рис. 11). Файл откроется в редакторе на проблемном месте.

Рис. 11. Быстрый переход к ошибке

 

· Исправьте ошибку путем добавления фигурной скобки. Щелкните кнопку «Save». Проект соберется заново и все маркеры ошибок пропадут.

· Cтроку System.out.print(«Hello»); измените на System.out.print(«Hello»+x);.

· В процессе ввода, ошибка отметится волнистой линией на переменной x, для индикации проблемы. Наведение курсора на подчеркнутое слово, вызывающее проблему вызовет всплывающее окно с описанием данной проблемы.

· В вертикальной линейке маркеров появится значок с лампочкой. Лампочка сигнализирует о том, что для данной проблемы доступны варианты коррекции (рис. 12).

Рис. 12. Исправляемая ошибка

 

· Щелкните на проблемное место, и выберите Quick Fix из пункта Edit строки меню. Вы так же можете нажать клавиши Ctrl+1 или щелкнуть левой кнопкой мыши на лампочке. Отобразится диалог с возможными вариантами исправлений (рис. 13).

Рис. 13. Возможности QuickFix

 

· Выберите «Create field 'x'» что бы исправить ошибку. В класс добавится поле x и волнистая линия, подсвечивающая проблемное место исчезнет.

· Вы можете настроить процесс отображения ошибок в меню General/Editors/Text Editors/Annotations.