Имя Пароль
Зарегистрироваться


* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна! RSS



Использование отладочных инструментов
8 февраля 2009

Полностью избежать ошибок при программировании невозможно, даже професси-
оналы время от времени допускают ошибки. Ошибки в программах часто называют
«жучками» (bugs), а процесс поиска и исправления этих ошибок — отладкой (debugging,
буквально — «ловля жучков»). На этом занятии вы познакомитесь с различ-
ными типами возможных ошибок и с инструментами для их поиска и исправления.
Изучив материал этого занятия, вы сможете:
^ описать наиболее распространенные типы ошибок;
^ применять режим Break и устанавливать точки прерывания;
•S осуществлять пошаговое исполнение кода;
^ рассказать, как работают с отладочными инструментами среды
разработки.
Продолжительность занятия - около 45 минут.
Основные типы ошибок
При написании кода программисты сталкиваются с тремя основными типами оши-
бок. Синтаксические ошибки (syntax errors) возникают, если компилятор не в состо-
янии «понять* переданный ему исходный текст. При попытке выполнить недопус-
тимое действие во время исполнения программы возникают ошибки периода выпол-
нения (run-time errors). Наконец, логические ошибки (logical errors) не препятствуют
компиляции и исполнению программы, но приводят к неожиданным результатам.
Синтаксические ошибки
Синтаксические ошибки возникают, если компилятор не может скомпилировать
предоставленный ему код, например, из-за опечатки в ключевом слове, пропуска
знака препинания или использования неверной конструкции. Следующий пример
кода содержит две синтаксические ошибки:
Visual Basic .NET
Public Sub SyntaxErrorO
System.Windows.Forms.MessageBoxShow("Where's the error?")
Visual C#
public void SyntaxErrorO
{
System.Windows.Forms.MessageBoxShow("Where's the error?");
Во-первых, здесь пропущена точка между MessageBox и Show, поэтому компи-
лятор не распознает такую ссылку. Во-вторых, отсутствует замыкающий элемент
конструкции метода (в Visual Basic .NET это End Sub, а в Visual C# — }). Любая из
этих ошибок не позволит компилятору интерпретировать такой код.
Visual Studio .NET облегчает поиск синтаксических ошибок, автоматически об-
наруживая их при компоновке проекта и выделяя в исходном тексте подсветкой.
Если дважды щелкнуть описание ошибки в окне Task List, среда разработки не-
медленно переместит курсор в соответствующую строку в окне кода и выделит
ошибку подсветкой — обычно этого достаточно, чтобы ее распознать и исправить.
Чтобы получить дополнительное описание выделенной ошибки, нажмите F1.
Visual Basic .NET автоматически проверяет синтаксис кода по мере его ввода,
при этом обнаруженные синтаксические ошибки сразу же выделяются подсветкой
и добавляются к списку в окне Task List, таким образом, не обязательно иницииро-
вать компоновку проекта, чтобы обнаружить синтаксические ошибки. Visual C#
также поддерживает автоматическую проверку синтаксиса кода при вводе, но она
не столь совершенна, как в Visual Basic.
*• Как найти и исправить допущенные синтаксические ошибки
1. Выполните компоновку проекта — при этом любые синтаксические ошибки бу-
дут обнаружены и добавлены в окно Task List (при использовании Visual Basic
.NET это делается автоматически без компоновки проекта).
2. Дважды щелкните ошибку в окне Task List — она будет выделена в окне редак-
тора кода подсветкой.
3. Исправьте найденную ошибку. Если требуется дополнительная информация, на-
жмите F1.
Ошибки периода выполнения
Они возникают при попытке приложения выполнить недопустимую операцию. К
этой категории относятся деление на ноль и действия, запрещенные политиками
безопасности: попытка их исполнения приводит к генерации исключения зашиты.
При возникновении ошибки периода выполнения генерируется исключение (exception),
предоставляющее описание ошибки, — специальный класс, который служит
для передачи сведений об ошибке другим компонентам приложения. Можно напи-
сать код, который будет обрабатывать исключения, не допуская остановки исполне-
ния приложения. Подробнее обработка исключений рассматривается на занятии 4.
Логические ошибки
Логическую ошибку констатируют, если приложение корректно компилируется и
исполняется, но не выдает ожидаемые результаты. Диагностировать такие ошибки
труднее, чем остальные, из-за отсутствия указаний на источник ошибки. Причиной
логической ошибки могут быть такие, на первый взгляд, незначительные промахи,
как неверно поставленная точка в десятичной дроби или лишний ноль:
Visual Basic .NET
Public Function CalculateSalary(ByVal HourlyRate As Single) As Single
Dim YearlySalary As Single
YearlySalary - HourlyRate * 52 * 400
Return YearlySalary
End Function
Visual C#
public float CalculateSalary(float HourlyRate)
;
float YearlySalary;
YearlySalary = HourlyRate * 52 * 400;
return YearlySalary;
}
Этот метод получает значение ставки почасовой оплаты и вычисляет размер го-
довой зарплаты, умножая полученное значение на число недель в году и на количе-
ство рабочих часов в неделю. Ошибка возникает, поскольку значение почасовой
оплаты умножается на 400, тогда как в рабочей неделе 40 часов, Компиляция и ис-
полнение этого метода проходит безошибочно, но результат он возвращает невер-
ный. Чтобы обнаружить логическую ошибку, необходимо предоставить приложе-
нию тестовые данные и проанализировать полученные результаты. Подробнее об
этом рассказывается на занятии 3. Часто для «отлова» логической ошибки прихо-
дится анализировать код, строку за строкой. Для этого применяется режим поша-
гового исполнения кода.

Теги: .NET

Статьи по теме:

Обработка ошибок при обновлении базы данных
Доступ к «плоским» файлам
Применение отладочных инструментов
Создание классов
Создание экземпляров пользовательских типов
Назначение значка элементу управления
Стандартная система типов CTS
Делегаты CTS
Отображение текста
Преобразование кодировки символов
Оптимизация средствами компилятора
Вложенные типы
Редактор типов файлов
Создание элемента управления
Обеспечение совместимости с замещенными или скрытыми членами
| .NET | Pavel |
 


Пн Вт Ср Чт Пт Сб Вс
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31


     



Rambler's Top100

Данный сайт или домен продается ICQ: 403-353-727

© 2009 Seoliga.ru | .NET | Использование отладочных инструментов. Регион сайта: Москва и Санкт-Петербург