Зараз ви перебуваєте в автономному режимі; очікується повторне підключення до Інтернету

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

УВАГА! Цю статтю переклала програма машинного перекладу Microsoft, а не людина. Корпорація Microsoft пропонує вам як машинні переклади, так і переклади фахівців, щоб Ви мали доступ до всіх статей бази знань рідною мовою. Проте стаття, яку переклав комп’ютер, не завжди бездоганна. Вона може містити лексичні, синтаксичні або граматичні помилки. Так само помиляється іноземець, спілкуючись вашою рідною мовою. Корпорація Microsoft не несе відповідальність за жодні неточності, помилки або шкоду, завдану неправильним перекладом змісту або його використанням з боку користувачів. Крім того, корпорація Microsoft часто оновлює програму машинного перекладу.

Клацніть тут, щоб переглянути цю статтю англійською мовою: 315965
ПІДСУМКИ
Ця стаття демонструє, як використовувати структуровані виняток у Visual Basic.ЧИСТИЙ або Visual Basic 2005 року.

back to the top

Вимоги

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

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

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				
Пробувати і Пробувати кінця заяви обов'язкові для заповнення. Зловити і, нарешті , заяви не є обов'язковими, хоча необхідно вказати принаймні один з них у ваш код. Також можна вказати декілька зловити заяви так, що кожен блок зловити ручками конкретну помилку.

back to the top

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

  1. Почати Visual Studio.МЕРЕЖІ або Visual Studio 2005.
  2. Створення нового проекту консольного застосування Visual Basic.ЧИСТИЙ або Visual Basic 2005 року.
  3. В процедуру Sub Головна додати наступний код:
    Dim a As Integer = 0Dim b As Integer = 0Dim c As Integer = 0Try  a = b \ cCatch 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. Закрийте вікно консолі.
back to the top

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

У цьому розділі демонструє, як використовувати декілька зловити заяви для обробки різних помилок.
  1. Відкрийте консоль застосування проект, створений у попередньому розділі.
  2. В процедуру Sub Головна замінити код, який ви скопіювали з попереднього розділу з наступний код:
    Dim a As Integer = 2147483647Dim b As Integer = 0Dim c As Integer = 0Try  a += 1Catch 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 ExceptionConsole.WriteLine("Error: " & exc.Message)					
  6. У меню файл виберіть команду Закрити рішення.
back to the top

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

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

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

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

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 SubEnd Module				
back to the top

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

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 SubEnd Module				
back to the top

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

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 SubEnd ModulePublic 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 PropertyEnd Class				
back to the top

ПОСИЛАННЯ

Для отримання додаткових відомостей зверніться до таких веб-сайтах Майкрософт:
Помилка обробки в 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)

back to the top

Попередження. Цю статтю переведено автоматично

Властивості

Ідентифікатор статті: 315965 – останній перегляд: 06/15/2012 08:47:00 – виправлення: 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
Зворотний зв’язок