Page 25 - 6735
P. 25

закоментувати  рядок  On  Error  GoTo  HandleError,  щоб
           побачити різницю.

           Dim x As Double

           Public Sub main()
           x = 0
           Debug.Assert x <> 0 'якщо 'x' дорівнює 0, призупинити
           виконання
           On Error GoTo HandleError 'при помилці перейти на мітку
           HandleError
           Debug.Print 1 / x 'помилка 11 (ділення на нуль)
           x = 1E+300 * 1E+300 'помилка 6 (переповнення)
           x = CDbl("0.12") 'помилка 13 (невідповідність типу)
           Err.Raise 65535 'створити помилку виконання 65535
           Exit Sub 'вийти з підпрограми
           HandleError: 'мітка
           Select Case Err.number 'якщо номер помилки
               Case 11 'рівний 11 (ділення на нуль)
                   x = 1 'змінити знаменник
                   Debug.Print "Ділення на нуль!" 'вивести
           повідомлення
                   Resume 'повторити інструкцію з помилкою
               Case Else 'інший номер
                   Debug.Print Err.number 'вивести номер помилки
                   Debug.Print Err.Description 'вивести опис помилки
           End Select
           Resume Next 'перейти на наступну інструкцію за помилкою
           End Sub
           Ділення на нуль!
            1
            6
           Overflow
            13
           Type mismatch
            65535
           Application-defined or object-defined error
                                          25
   20   21   22   23   24   25   26   27   28   29   30