Обработка ошибок

Содержание

Слайд 2

Try...Catch...Finally Try Debug.WriteLine("Try") Catch Debug.WriteLine("Catch") Finally Debug.WriteLine("Finally") End Try Debug.WriteLine("Done Trying")

Try...Catch...Finally

Try
Debug.WriteLine("Try")
Catch
Debug.WriteLine("Catch")
Finally
Debug.WriteLine("Finally")
End Try
Debug.WriteLine("Done Trying")

Слайд 3

Try...Catch...Finally Try - В этот раздел помещается фрагмент программы, который может

Try...Catch...Finally

Try - В этот раздел помещается фрагмент программы, который может вызвать

исключение
Catch - Текст, помещенный в этот раздел, выполняется только при возникновении исключения.
Finally - Текст внутри этого раздела выполняется после выполнения текста в разделе Try и/или разделе Catch. Обычно в этот раздел помещаются операторы, выполняющие высвобождение ресурсов, т.е. текст, который должен выполниться всегда, независимо от того, возникало ли исключение
Слайд 4

Try...Catch...Finally Выполнился фрагмент, включенный в раздел Try. 2. Так как не

Try...Catch...Finally

Выполнился фрагмент, включенный в раздел Try.
2. Так как не возникло никаких

исключений, текст раздела Catch не выполнялся.
3. После окончания выполнения операторов в разделе Try выполнился текст раздела Finally.
4. После выполнения всех операторов в разделе Finally управление было передано оператору, следующему за End Try.
Слайд 5

Работа с исключениями Оператор Catch дает возможность определить переменную, содержащую ссылку

Работа с исключениями

Оператор Catch дает возможность определить переменную, содержащую ссылку на

объект исключения.
Используя этот объект, можно получить информацию об исключении.
Catch objException As Exception - обрабатывает почти все исключения
Слайд 6

Пример: Dim intAnswer As Long Try LngAnswer=100/Clng(txtInput.Text) MsgBox ("100 / "

Пример:

Dim intAnswer As Long
Try
LngAnswer=100/Clng(txtInput.Text)
MsgBox ("100 / " & txtlnput.Text &

" is " & lngAnswer)
Catch objException As System.OverflowException
MsgBox(«введите что-нибудь в textbox")
Catch objException As Exception
MsgBox(“перехват других исключений")
End Try
Слайд 7

Объект Err Err - это специальный объект Visual Basic, в котором

Объект Err

Err - это специальный объект Visual Basic, в котором при каждом

возникновении ошибки времени исполнения сохраняется подробная информация по этой ошибке.
Свойства объекта Err:
Err.Number содержит номер самой последней из ошибок времени исполнения,
Err.Description содержит краткое сообщение об этой ошибке.
Err.Clear  этот метод стирает информацию о предыдущей ошибке
Err.Raise генерирует ошибку
Слайд 8

Перечень ошибок времени исполнения

Перечень ошибок времени исполнения

Слайд 9

генерация - исключений Try Err.Raise(61) ' генерируем ошибку Disk Full Catch

генерация - исключений

Try
Err.Raise(61) ' генерируем ошибку Disk Full
Catch When

Err.Number = 61
MsgBox("Ошибка: Диск переполнен")
End Try
Слайд 10

Взаимодействие с пользователем Отображение сообщений с помощью функции MsgBox () Синтаксис:

Взаимодействие с пользователем

Отображение сообщений с помощью функции MsgBox ()
Синтаксис: MsgBox(promt, [buttons],

[title])
Promt — это текст, который будет отображаться в окне сообщения,
buttons определяет, какие будут кнопки в окне и какая пиктограмма,
t i t l e — что будет написано в заголовке окна.
Класс MessageBox.show(promt,[title,buttons,icon,defaultButton,option])
defaultButton- какая кнопка активна
Option – расположение текста в окне
Слайд 11

Тип значка

Тип значка

Слайд 12

Значения кнопок

Значения кнопок

Слайд 13

Обработка нажатия кнопки Выполнение программой определенных действий, в зависимости от того,

Обработка нажатия кнопки

Выполнение программой определенных действий, в зависимости от того, какая

была нажата кнопка, основано на использовании одной из логических конструкций выбора. Например:
If MsgBox("Хотите выполнить действия X?", MsgBoxStyle.YesNo Or MsgBoxStyle.Question) = MsgBoxResult.Yes Then
' выполнение Х происходит здесь’
End I f
Слайд 14

Обработка нажатия кнопки Обработка запроса на подтверждение (при нажатии кнопки ВЫХОД)

Обработка нажатия кнопки

Обработка запроса на подтверждение
(при нажатии кнопки ВЫХОД)
If MessageBox.Show("закрыть?", "close",

MessageBoxButtons.OKCancel, MessageBoxIcon.Stop, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign) = DialogResult.OK Then Me.Close()
End if
Слайд 15

Событие нажатия кнопки «закрыть» Private Sub Form1_FormClosing(ByVal sender As Object, ByVal

Событие нажатия кнопки «закрыть»

Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e

As System.Windows.Forms. FormClosingEventArgs) Handles Me.FormClosing
e.Cancel = True
If MsgBox("закрыть?") = MsgBoxResult.Ok Then _ e.Cancel = False
End Sub
Слайд 16

Диалоговые окна определить результат диалога для одной или нескольких кнопок, т.

Диалоговые окна

определить результат диалога для одной или нескольких кнопок, т. е.

что должно произойти при нажатии той или иной кнопки.
указать, каким образом вызывается форма (ShowDialog).
форма будет отображена модально
если пользователь щелкает по кнопке, у которой свойство DialogResult выставлено на возвращение некоторой величины, то форма сразу же закрывается, а возвращенная величина считается результатом вызова ShowDialog
Слайд 17

Пример Dim objDialBox As New formdial() If ObjDialBox.ShowDialog=DialogResult.OK Then MsgBox("You clicked

Пример

Dim objDialBox As New formdial()
If ObjDialBox.ShowDialog=DialogResult.OK Then
MsgBox("You clicked ОК.")
Else
MsgBox(«You clicked

Cancel.")
End If
objCustomDialogBox = Nothing
Слайд 18

Ввод данных создать форму с управляющими средствами для перехвата данных; использовать

Ввод данных

создать форму с управляющими средствами для перехвата данных;
использовать функцию InputBox

() для получения данных от пользователя.
InputBox(promt, [ title ] , [defaultresponce])
defaultresponce текст, который будет появляться в окне ввода по умолчанию.
strResult = InputBox("How many eggs do you want to order?", "Order eggs", "12")
Слайд 19

События клавиатуры KeyDown - Происходит при нажатии клавиши, Keypress - Происходит

События клавиатуры

KeyDown - Происходит при нажатии клавиши,
Keypress - Происходит при

нажатии клавиши (нажать и отпустить),
KeyUp - Происходит, если отпустить нажатую клавишу
В событиях клавиатуры параметр е содержит данные о том, какая была нажата клавиша.
Информацию о том, какая была нажата клавиша, можно узнать из свойств KeyChar параметра е.
Слайд 20

Примеры Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)

Примеры

Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)

Handles Me.KeyDown
If e.KeyCode = Keys.A Then Label1.BackColor = Color.Blue
End Sub
Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
a = Label1.Left
If e.KeyChar = "d" Then a = a + 10
Label1.Left = a
End Sub
Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp
If e.KeyCode = Keys.B Then Label1.Text = "hhjhj"
End Sub
Слайд 21

Примеры Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)

Примеры

Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles

Me.KeyPress
a = Label1.Left
If e.KeyChar = "d" Then a = a + 10
Label1.Left = a
If e.KeyChar = "k" Then
e.Handled = True
Label1.BackColor = Color.Brown
End If
End Sub
Слайд 22

Пример Когда Handled имеет значение TRUE, то Visual Basic пропускает данное

Пример

Когда Handled имеет значение TRUE, то Visual Basic пропускает данное

нажатие клавиши.
перехватывает ввод всех букв "К", независимо от их регистра:
If e.KeyChar.ToLower(e.KeyChar) = "k" Then e.Handled = True
End If
Слайд 23

События мыши

События мыши

Слайд 24

Перетаскивание объекта Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As

Перетаскивание объекта

Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.

MouseEventArgs) Handles Me.MouseMove
If e.Button = MouseButtons.Right Then
Label1.Left = e.X
Label1.Top = e.Y
End If
End Sub
Слайд 25

Рисование Private Sub Form1_MouseDown() If e.Button = MouseButtons.Left Then x1 =

Рисование

Private Sub Form1_MouseDown()
If e.Button = MouseButtons.Left Then
x1 =

e.X
y1 = e.Y
I = True
End If
End Sub
Private Sub Form1_MouseUp()
i = False
End Sub
Слайд 26

Рисование Private Sub Form1_MouseMove() Dim graf As Graphics = MyClass.CreateGraphics If

Рисование

Private Sub Form1_MouseMove()
Dim graf As Graphics = MyClass.CreateGraphics
If i

Then
x2 = e.X
y2 = e.Y
graf.DrawLine(New Pen(Color.Blue, 3), x1, _ y1, x2, y2)
x1 = x2
y1 = y2
End If
End Sub