Як використовувати структуровані виняток у Visual Basic.ЧИСТИЙ або Visual Basic 2005 року

Переклади статей Переклади статей
Номер статті: 315965 - Показ продуктів, яких стосується ця стаття.
Розгорнути все | Згорнути все

На цій сторінці

ПІДСУМКИ

Ця стаття демонструє, як використовувати структуровані виняток у Visual Basic.ЧИСТИЙ або Visual Basic 2005 року.

Вимоги

У цьому списку описано рекомендованих устаткування, Підтримка програмного забезпечення, мережі інфраструктури та пакети оновлень, які потрібно:
  • Visual Basic.МЕРЕЖІ або Visual Basic 2005
У цій статті припускає, що ви знайомі з наступні теми:
  • Visual Basic.МЕРЕЖІ або Visual Basic 2005
  • Microsoft Visual Studio.МЕРЕЖІ або Microsoft Visual Studio 2005

Структурована обробка винятків

Visual Basic.МЕРЕЖІ або Visual Basic 2005 пропонує структурованих виняток, обробки, що забезпечує потужний, більш читабельним альтернатива "На Goto про помилку" помилка обробки, доступного в попередніх версіях Microsoft Visual Basic. Структурована обробка винятків є більш потужним, тому що вона дозволяє вкласти помилка обробників всередині інших помилка обробників в таку саму процедуру. Крім того, структурована обробка винятків використовує синтаксис блок, схожий на Якщо...Інше...Кінець, якщо заявою. Це робить Visual Basic.ЧИСТИЙ і Visual Basic 2005 код більш читабельним і легше підтримувати.

Примітка: Visual Basic.МЕРЕЖІ або Visual Basic 2005 зберігає "На помилку Goto" синтаксис для зворотної сумісності. Ще, за допомогою цього синтаксису Visual Basic.Код МЕРЕЖІ або Visual Basic 2005. Проте, неможливо об'єднувати структурована обробка винятків і заяви Про помилку на таку саму процедуру. Коли ви пишете новий код, Microsoft рекомендує використовувати структурована обробка винятків.

основний маркер синтаксис структурованих помилка обробки виглядає наступним чином:
Try
   'Code that may raise an error.
Catch
   'Code to handle the error.
Finally
   'Code to do any final clean up.
End Try
				
Пробувати і Пробувати кінця заяви обов'язкові для заповнення. Зловити і, нарешті , заяви не є обов'язковими, хоча необхідно вказати принаймні один з них у ваш код. Також можна вказати декілька зловити заяви так, що кожен блок зловити ручками конкретну помилку.

Зловити виняток

  1. Почати Visual Studio.МЕРЕЖІ або Visual Studio 2005.
  2. Створення нового проекту консольного застосування Visual Basic.ЧИСТИЙ або Visual Basic 2005 року.
  3. В процедуру Sub Головна додати наступний код:
    Dim a As Integer = 0
    Dim b As Integer = 0
    Dim c As Integer = 0
    
    Try
      a = b \ c
    Catch exc As Exception
      Console.WriteLine("A run-time error occurred")
    Finally
      Console.ReadLine()
    End Try
    					
  4. Debug меню натисніть кнопку Пуск , запустіть програму. Код намагається ділення числа на нуль. Це незаконне операція, що спричиняє розділяй на нуль-винятку. На щастя, блок зловити ловить цю помилку, і вікно консолі відображає таке протокол IMAP про помилку:
    A run-time error has occurred
    						
  5. Закрийте вікно консолі.

Зловити кілька винятків

У цьому розділі демонструє, як використовувати декілька зловити заяви для обробки різних помилок.
  1. Відкрийте консоль застосування проект, створений у попередньому розділі.
  2. В процедуру Sub Головна замінити код, який ви скопіювали з попереднього розділу з наступний код:
    Dim a As Integer = 2147483647
    Dim b As Integer = 0
    Dim c As Integer = 0
    
    Try
      a += 1
    Catch exc As DivideByZeroException
      Console.WriteLine("Error: Divide by zero")
    Catch exc As OverflowException
      Console.WriteLine("Error: Overflow")
    Finally
      Console.ReadLine()
    End Try
    						
    Цей код включає два блоки зловити : зловити попередній розділити на нуль і зловити нові помилки переповнення.
  3. Debug меню натисніть кнопку Пуск , запустіть програму. Вікно консолі відображає таке протокол IMAP про помилку:
    Error: Overflow
    						
  4. Закрийте вікно консолі.
  5. Тому що ви не можете завжди передбачити кожну помилку, яка може виникнути, ви можете додати зловити всіх блоку на непередбачені винятки. Наприклад, додати наступний код, перш ніж нарешті заяву, щоб зловити будь-яких непередбачених помилок та відображати відповідну помилку:
    Catch exc As Exception
    Console.WriteLine("Error: " & exc.Message)
    					
  6. У меню файл виберіть команду Закрити рішення.

Кинути виняток

Структурована обробка винятків використовує зловити заяву зловити виняток. Обробка винятків структурованих також надає спосіб кинути виняток. Наприклад, це корисно, щоб кинути виняток під Вільний час виконання перевірки даних всередині Властивість процедура, оскільки ви можете видасть помилку, якщо бізнес правила.
  1. Почати Visual Studio.МЕРЕЖІ або Visual Studio 2005.
  2. Створення нового проекту консольного застосування Visual Basic.ЧИСТИЙ або Visual Basic 2005 року.
  3. Проект меню виберіть команду Додати клас.
  4. У вікні запит на додавання нового елемента введіть clsPerson.vb в ім'я текстового поля та натисніть кнопку ОК.
  5. Додати наступний код всередині громадських класу clsPerson...Кінець класу заяви:
    Private mintAge As Integer
    
    Public Property Age() As Integer
      Get
        Age = mintAge
      End Get
      Set(ByVal Value As Integer)
        If Value >= 0 Then
          mintAge = Value
        Else
          Throw New ArgumentException ("Age cannot be negative")
        End If
      End Set
    End Property
    						
    Цей код створює властивістю віку . Оскільки людина не може мати негативні вік, помилка підняли користувача класу намагається встановити вік числом, менший за нуль.
  6. В процедуру Sub Головна Module1.vb додати наступний код:
    Dim p As New clsPerson()
    
    Try
      p.Age = -1
    Catch exc As Exception
      Console.WriteLine(exc.Message)
    Finally
      Console.ReadLine()
    End Try
    					
  7. Debug меню натисніть кнопку Пуск , запустіть програму. Вікно консолі відображає таке протокол IMAP про помилку:
    Age cannot be negative
    						
  8. Закрийте вікно консолі.

Повний код список

Зловити виняток

Module Module1

  Sub Main()
    Dim a As Integer = 0
    Dim b As Integer = 0
    Dim c As Integer = 0

    Try
      a = b \ c
    Catch exc As Exception
      Console.WriteLine("A run-time error occurred")
    Finally
      Console.ReadLine()
    End Try

  End Sub

End Module
				

Зловити кілька винятків

Module Module1

  Sub Main()
    Dim a As Integer = 2147483647
    Dim b As Integer = 0
    Dim c As Integer = 0

    Try
      a += 1
    Catch exc As DivideByZeroException
      Console.WriteLine("Error: Divide by zero")
    Catch exc As OverflowException
      Console.WriteLine("Error: Overflow")
    Catch exc As Exception
      Console.WriteLine("Error: " & exc.Message)
    Finally
      Console.ReadLine()
    End Try


  End Sub

End Module
				

Кинути виняток

Module Module1

  Sub Main()
    Dim p As New clsPerson()

    Try
      p.Age = -1
    Catch exc As Exception
      Console.WriteLine(exc.Message)
    Finally
      Console.ReadLine()
    End Try
  End Sub

End Module

Public Class clsPerson

  Private mintAge As Integer

  Public Property Age() As Integer
    Get
      Age = mintAge
    End Get
    Set(ByVal Value As Integer)
      If Value >= 0 Then
        mintAge = Value
      Else
        Throw New ApplicationException("Age cannot be negative")
      End If
    End Set
  End Property

End Class
				

ПОСИЛАННЯ

Для отримання додаткових відомостей зверніться до таких веб-сайтах Майкрософт:
Помилка обробки в VB.МЕРЕЖІ як: Життя з винятками ( Visual Basic розробник статті)
ASPX http://MSDN.Microsoft.com/EN-US/Library/aa227603 (v=vs.60)

Як зловити виняток
ASPX http://MSDN.Microsoft.com/EN-US/Library/ys1b32h3 (v=vs.80)

Як кинути виняток
ASPX http://MSDN.Microsoft.com/EN-US/Library/z7w9ff54 (v=vs.80)

Властивості

Номер статті: 315965 - Востаннє переглянуто: 15 червня 2012 р. - Редакція: 1.0
ЗАСТОСОВУЄТЬСЯ ДО:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Ключові слова: 
kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB315965 KbMtuk
Машинний переклад
УВАГА! Цю статтю переклала програма машинного перекладу Microsoft, а не людина. Корпорація Microsoft пропонує вам як машинні переклади, так і переклади фахівців, щоб Ви мали доступ до всіх статей бази знань рідною мовою. Проте стаття, яку переклав комп’ютер, не завжди бездоганна. Вона може містити лексичні, синтаксичні або граматичні помилки. Так само помиляється іноземець, спілкуючись вашою рідною мовою. Корпорація Microsoft не несе відповідальність за жодні неточності, помилки або шкоду, завдану неправильним перекладом змісту або його використанням з боку користувачів. Крім того, корпорація Microsoft часто оновлює програму машинного перекладу.
Клацніть тут, щоб переглянути цю статтю англійською мовою: 315965

Надіслати відгук

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com