Teď jste offline a čekáte, až se znova připojí internet.

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

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
Souhrn
Tento článek ukazuje, jak použít aplikaci Visual Basic .NET nebo Visual Basic 2005 zpracování strukturovaných výjimek.

back to the top

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

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.

back to the top

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 = 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. 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.
back to the top

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 = 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						
    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 ExceptionConsole.WriteLine("Error: " & exc.Message)					
  6. V nabídce soubor klepněte na tlačítko Zavřít řešení.
back to the top

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 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						
    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 = -1Catch 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.
back to the top

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

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

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 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

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

back to the top

Upozornění: Tento článek je přeložený automaticky

Vlastnosti

ID článku: 315965 - Poslední kontrola: 10/28/2013 23:41:00 - Revize: 6.0

Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition

  • kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB315965 KbMtcs
Váš názor
body>s://c1.microsoft.com/c.gif?DI=4050&did=1&t=">p;did=1&t=">&t=">