Jak používat aplikaci Visual Basic .NET nebo Visual Basic 2005 zpracování strukturovaných výjimek

Překlady článku Překlady článku
ID článku: 315965 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento článek ukazuje, jak použít aplikaci Visual Basic .NET nebo Visual Basic 2005 zpracování strukturovaných výjimek.

Požadavky

Následující seznam obsahuje doporučený hardware, software, síťovou infrastrukturu a aktualizace service Pack, které potřebujete:
  • Visual Basic .NET nebo Visual Basic 2005
Tento článek předpokládá, že jste obeznámeni s následující tématy:
  • Visual Basic .NET nebo Visual Basic 2005
  • Microsoft Visual Studio .NET nebo Microsoft Visual Studio 2005

Strukturované zpracování výjimek

Visual Basic .NET nebo Visual Basic 2005 nabízí strukturované zpracování výjimek, který poskytuje výkonné a čitelnější alternativa k zpracování chyb "Na Goto chyba", která je k dispozici v předchozích verzích jazyka Microsoft Visual Basic. Strukturované zpracování výjimek je výkonnější, protože je možné vnořovat obslužné rutiny chyb uvnitř jiné obslužné rutiny chyb v rámci stejného postupu. Strukturované zpracování výjimek navíc použita podobně jako blok syntaxe, pokud...Jinak...End If prohlášení. Kód jazyka Visual Basic .NET a Visual Basic 2005 díky čitelnější a snadněji udržují.

Poznámka: Visual Basic .NET nebo Visual Basic 2005 zachován z důvodu zpětné kompatibility syntaxi "Na Goto chyba". Tuto syntaxi můžete stále použít v kódu jazyka Visual Basic .NET nebo Visual Basic 2005. Příkazy On Error v rámci stejného postupu a strukturované zpracování výjimek však nelze kombinovat. Při psaní nového kódu, společnost Microsoft doporučuje použít strukturované zpracování výjimek.

Základní syntaxe strukturované zpracování chyb je následující:
Try
   'Code that may raise an error.
Catch
   'Code to handle the error.
Finally
   'Code to do any final clean up.
End Try
				
Příkazy a Konce akci jsou požadovány. Příkazy Catch a nakonec nejsou povinné, když musí obsahovat alespoň jeden z nich ve vašem kódu. Můžete také určit více příkazy Catch , takže každý blok Catch zpracuje specifickou chybu.

Zachytit výjimku

  1. Spusťte aplikaci Visual Studio .NET nebo Visual Studio 2005.
  2. Vytvořte nový projekt aplikace konzoly v jazyce Visual Basic .NET nebo Visual Basic 2005.
  3. V proceduře Sub Main přidejte následující kód:
    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. V nabídce Debug klepněte na tlačítko Start ke spuštění aplikace. Kód se pokusí číslo dělení nulou. Toto je neplatná operace, která způsobí dělení nulovou výjimky. Naštěstí blok Catch zachycuje tuto chybu a v okně konzoly se zobrazí následující chybová zpráva:
    A run-time error has occurred
    						
  5. Zavřete okno konzoly.

Zachytit více výjimek

Tento oddíl ukazuje, jak použít vícenásobné příkazy Catch pro zpracování různých chyb.
  1. Otevřete projekt konzolové aplikace, který jste vytvořili v předchozí části.
  2. V proceduře Sub Main nahraďte kód, který jste zkopírovali v předchozím oddílu s následujícím kódem:
    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
    						
    Tento kód obsahuje dva bloky Catch : jeden pro zachycení předchozí dělení nulou a jeden zachytit nové chybě přetečení.
  3. V nabídce Debug klepněte na tlačítko Start ke spuštění aplikace. V okně konzoly se zobrazí následující chybová zpráva:
    Error: Overflow
    						
  4. Zavřete okno konzoly.
  5. Vzhledem k tomu, že nelze vždy odhadnout všechny chyby, ke kterému může dojít, můžete přidat bloku Catch všechny nepředpokládané výjimky. Například přidejte následující kód před příkazem Finally zachytit neočekávané chyby a zobrazí se příslušná chybová zpráva:
    Catch exc As Exception
    Console.WriteLine("Error: " & exc.Message)
    					
  6. V nabídce soubor klepněte na tlačítko Zavřít řešení.

Výjimku

Strukturované zpracování výjimek používá příkaz Catch k zachycení výjimek. Zpracování strukturovaných výjimek také umožňuje vyvolat výjimku. Například je užitečné při provádění ověření dat uvnitř procedury Vlastnost nastavena , protože chcete vyvolá chybu, pokud je porušeno obchodní pravidlo vyvolá výjimku.
  1. Spusťte aplikaci Visual Studio .NET nebo Visual Studio 2005.
  2. Vytvořte nový projekt aplikace konzoly v jazyce Visual Basic .NET nebo Visual Basic 2005.
  3. V nabídce projekt klepněte na tlačítko Přidat třídu.
  4. V okně Přidat novou položku zadejte clsPerson.vb v textu název a klepněte na tlačítko OK.
  5. Přidejte následující kód do clsPerson veřejnou třídu...End Class příkazy:
    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
    						
    Tento kód vytvoří vlastnost stáří . Vzhledem k tomu, že osoby nemohou mít zápornou stáří, je vyvolána chyba při pokusu uživatele třídy nastavení věku na číslo, které je menší než nula.
  6. V proceduře Sub Main z Module1.vb přidejte následující kód:
    Dim p As New clsPerson()
    
    Try
      p.Age = -1
    Catch exc As Exception
      Console.WriteLine(exc.Message)
    Finally
      Console.ReadLine()
    End Try
    					
  7. V nabídce Debug klepněte na tlačítko Start ke spuštění aplikace. V okně konzoly se zobrazí následující chybová zpráva:
    Age cannot be negative
    						
  8. Zavřete okno konzoly.

Úplný výpis kódu

Zachytit výjimku

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
				

Zachytit více výjimek

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
				

Výjimku

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
				

ODKAZY

Další informace naleznete na následujících webech společnosti Microsoft:
VB.NET způsob zpracování chyb: život s výjimkami (článek Vývojáře jazyka Visual Basic )
http://msdn.microsoft.com/en-us/library/aa227603 (v=vs.60).aspx

Jak se zachytit výjimku
http://msdn.microsoft.com/en-us/library/ys1b32h3 (v=vs.80).aspx

Jak se vyvolat výjimku
http://msdn.microsoft.com/en-us/library/z7w9ff54 (v=vs.80).aspx

Vlastnosti

ID článku: 315965 - Poslední aktualizace: 28. října 2013 - Revize: 6.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Klíčová slova: 
kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB315965 KbMtcs
Strojově přeložený článek
DŮLEŽITÉ: Tento článek je přeložen pomocí softwaru na strojový překlad Microsoft. Nepřesný či chybný překlad lze opravit prostřednictvím technologie Community Translation Framework (CTF). Microsoft nabízí strojově přeložené, komunitou dodatečně upravované články, a články přeložené lidmi s cílem zajistit přístup ke všem článkům v naší znalostní bázi ve více jazycích. Strojově přeložené a dodatečně upravované články mohou obsahovat chyby ve slovníku, syntaxi a gramatice. Společnost Microsoft není odpovědná za jakékoliv nepřesnosti, chyby nebo škody způsobené nesprávným překladem obsahu nebo jeho použitím našimi zákazníky. Více o CTF naleznete na http://support.microsoft.com/gp/machine-translation-corrections/cs.
Projděte si také anglickou verzi článku: 315965

Dejte nám zpětnou vazbu

 

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