* При перепечатке материалов ссылка на 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

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

Формирование запросов SQL во время выполнения
Применение объекта DataReader
Создание экземпляров пользовательских типов
Настройка установочной программы
Специальные возможности и логотип «Certified for Windows»
Применение XML с объектами DataSet
Создание компонента DoughnutMachine
Проверка на уровне формы
Установка порядка передачи фокуса при нажатии клавиши Tab
Применение типов .NET Framework в приложениях
Параметризованные свойства
Отладка элементов управления
Обзор .NET Framework
Создание конфигурационного файла
Наборы
| .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


     



Rambler's Top100

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

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