ПОНЯТНО О Visual Basic NET


Как VB реагирует на наши ошибки


В 1.1 на примере похода на футбол я уже показал вам, к каким катастрофическим последствиям могут привести ошибки в программе. Что будет, если вы допустите ошибку в программе на VB? Это зависит от того, что это за ошибка и сумеет ли VB ее своевременно обнаружить. Рассмотрим 3 типа ошибок.

Смысловые ошибки – 1. Итак, вы сохранили свой первый проект. Закройте его – File ® Close Solution. Создайте новый проект. Он предназначен для того, чтобы мы намеренно допускали в нем ошибки и учились их исправлять. Назовите проект как-нибудь, например, «Ошибки». Поместите на форму одну-единственную кнопку (Рис. 1.15).

Рис. 1.15

В режиме проектирования сделайте двойной щелчок по этой кнопке и в возникшей заготовке процедуры в окне кода введите такой код:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

      Dim a = 90

      Button1.Width = 100 - a

End Sub

Поясним его.

Оператор Dim a = 90   означает «Объявим, что существует переменная a и присвоим ей значение 90». Другими словами, «Пусть а будет равно 90». Оператор Button1.Width = 100 - a   означает «Сделать ширину кнопки  Button1 равной  100 – a», то есть в нашем случае 10. Если вы подзабыли, что такое переменная величина, читайте 5.1.

Запустите проект, нажмите кнопку. Кнопка стала слишком узкой, так как 10 – достаточно маленькая величина. Мы склонны считать это нашей ошибкой, но не можем требовать от VB, чтобы он такие ошибки обнаруживал. Действительно, откуда ему знать, может, нам нравится иметь такие узенькие кнопки. Таким образом, существуют смысловые (с точки зрения человека) ошибки в коде и дизайне проекта, которые VB ошибками не считает и поэтому не обнаруживает и в принципе обнаруживать не должен.

Смысловые ошибки – 2. Завершите выполнение проекта. Изменим код процедуры (я показываю только тело):

      Dim a = 300

      Button1.Width = 100 - a

Явная ерунда. Получается, что ширина кнопки должна стать отрицательной (-200). Так не бывает. Запустите проект, нажмите кнопку. Кнопка исчезает. Завершите выполнение проекта. Вот эту-то ошибочку VB мог бы обнаружить и дать нам знать. Но не захотел. Или не смог. Просто сделал ширину кнопки нулевой. А нам показалось, что она исчезла. Считать ли это недостатком VB? Не знаю. Во всяком случае мы должны знать, что VB не настолько умен и услужлив, чтобы обнаруживать все наши даже явные глупости.




Начало  Назад  Вперед