'Сложить n1 и n2 и возвратить результат
'в n3
'Если n3 меньше 0, то функция ПЕРЕДАЕТ УПРАВЛЕНИЕ ОБРАБОТЧИКУ ИСКЛЮЧЕНИЙ.
'В противном случае возвращается TRUE
'========================================================================
Function exceptionIfLessThanZero_Add2Numbers( _
ByVal n1As Integer, ByVal n2As Integer, _
ByRef n3 As Integer) As Boolean
n3 = n1 + n2
'Результат меньше 0?
If (n3 <0) Then
Throw New Exception("Результат меньше 0!")
End If
Return True
End Function
'=======================================================
'Осуществляет многократные вызовы простой функции и
'измеряет общее время выполнения
'Вызываемая функция НЕ приводит к возбуждению исключений
'=======================================================
Private Sub buttonRunNoExceptionCode_Click(ByVal senderAs System.Object, _
ByVal eAs System.EventArgs) Handles buttonRunNoExceptionCode.Click
Const TEST_NUMBERAs Integer = 0
Dim numberItterations As Integer
numberItterations = _
CInt(textBoxNumberAttempts.Text)
'Отобразить количество итераций, которые предстоит выполнить
ListBox1.Items.Add("=>" + numberItterations.ToString + " итераций")
Dim count_SumLessThanZero As Integer
Dim dataOut As Integer
'----------------
'Запустить таймер
'----------------
PerformanceSampling.StartSample(TEST_NUMBER, "Исключения отсутствуют")
'------------------------------------------------------
'Выполнить цикл, в котором осуществляется вызов функции
'------------------------------------------------------
count_SumLessThanZero = 0
Dim sumGreaterThanZero As Boolean
Dim i As Integer
While (i < numberItterations)
'=========================
'Вызвать тестовую функцию!
'=========================
sumGreaterThanZero = _
returnFalseIfLessThanZero_Add2Numbers(-2, -3, dataOut)
If (sumGreaterThanZero = False) Then
count_SumLessThanZero = count_SumLessThanZero + 1
End If
i = i + 1
End While
'-----------------
'Остановить таймер
'-----------------
PerformanceSampling.StopSample(TEST_NUMBER)
'--------------------------------
'Показать результаты пользователю
'--------------------------------
If (count_SumLessThanZero = numberItterations) Then
MsgBox("Тест выполнен")
ListBox1.Items.Add( _
PerformanceSampling.GetSampleDurationText(TEST_NUMBER))
Else
MsgBox("При выполнении теста возникали осложнения")
End If
End Sub
'==================================================
'Осуществляет многократные вызовы простой функции и
'измеряет общее время выполнения.
'Вызываемая функция ВОЗБУЖДАЕТ исключения
'==================================================