Сообщения об ошибках
Редактор кода
Это окно, предназначенное для ввода и редактирования исходных текстов программ. Отображаться может содержимое только одного файла проекта. Если открыто более одного файла, в верхней части редактора появляется строка вкладок, с помощью которой можно быстро переключаться между различными файлами, выбирая курсором мыши нужную вкладку.
Небольшая, но очень удобная особенность, которая есть у редакторов кода многих сред программирования, — это сворачивание кода. Если в каком-нибудь классе есть метод, занимающий своим кодом много места в редакторе, его можно свернуть, выигрывая тем самым не только рабочее место, но и делая код более читаемым. Для того чтобы свернуть содержимое кода метода, нужно щелкнуть мышью по значку минус в левом столбце. Для развертывания — по аналогии, на значке плюс.
С помощью синтаксического контроля программы интерпретатором 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.