Jak zachycení výjimek jazyka Visual Basic nebo Visual Basic 2005.NET

Překlady článku Překlady článku
ID článku: 301283 - Produkty, které se vztahují k tomuto článku.
Microsoft Visual C# 2005 a Microsoft Visual C#.NET verzi tohoto článku, naleznete v tématu 308345.

Microsoft Visual Basic 6.0 verzi tohoto článku naleznete 191474.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Zachycení a obchodování s výjimkami je standard programovací úlohy. Tento článek ukazuje, jak použít try-catch-finally blok zachytit výjimku. A try-catch-finally blok je "obal" umístěných kolem jakýkoli kód, kde existuje možnost výjimku.

A try-catch-finally blok sestává z následujících částí:
  • Jakýkoli kód, který může vyvolat výjimku je umístěn uvnitř Zkuste blok.
  • Pokud se vyskytne výjimka, úlovky zadání bloku a program můžete provést příslušnou operace obnovení nebo upozornit uživatele.
  • Kód v Nakonec blok je vždy spuštěn a lze provést vyčištění po došlo k výjimce. Na Nakonec blok je volitelné.

Požadavky

Následující seznam obsahuje doporučený hardware, software, síťovou infrastrukturu a aktualizace service Pack, které potřebujete:
  • Microsoft Windows Server 2003, Microsoft Windows 2000 Professional, Windows 2000 Server Systém Windows 2000 Advanced Server nebo Microsoft Windows NT 4.0 Server
  • Microsoft Visual Basic 2005 nebo Microsoft Visual Basic.NET

Podrobný příklad

  1. Vytvořte nové konzoly aplikace Visual Basic 2005 nebo v jazyce Visual Basic.NET.
  2. V proceduře Sub Main vložit kód vzorku takto. Vzorek prohlašuje a inicializuje tři proměnné, na kterém Inicializace "k" způsobí chybu.
    ' This code generates an exception.
    	Console.WriteLine("We're going to divide 10 by 0 and see what happens...")
    	Console.WriteLine()
    
    	Dim i as Integer = 10
    	Dim j as Integer = 0
    	Dim k As Integer = i/j ' Error on this line.
    					
  3. Stisknutím klávesy F5 zobrazíte výjimku.
  4. Zalomit try-catch prohlášení kolem kód zachytit chybu. Následující kód zachycuje všechny chyby, které se zobrazují v kódu a zobrazuje obecný chybová zpráva. Nahradit následující kód v proceduře Sub Main kód.
    ' This code shows how to catch an exception.
    Try
    	Console.WriteLine("We're going to divide 10 by 0 and see what happens...")
    	Console.WriteLine()
    
    	Dim i as Integer = 10
    	Dim j as Integer = 0
    	Dim k As Integer = i/j ' Error on this line. Control jumps to the catch block.
    Catch
    	Console.WriteLine("An error occurred.")
    End Try
  5. Stiskněte kombinaci kláves CTRL + F5 spuštění projektu. Všimněte si, že došlo k chybě zprávy se úlovky blok je zobrazen.
  6. Pokud některé vyčištění nebo následné zpracování je třeba provést bez ohledu na chyby Nakonec část try-catch-finally prohlášení. V kódu Nakonec část příkazu je vždy spuštěný, bez ohledu výjimka. Následující kód zobrazuje "Toto prohlášení je vytištěno vždy" konzoly, i když nedošlo k žádné chybě. Nahradit kód Sub Main s Následující kód.
    ' This code shows how to catch an exception.	
    Try
    	Console.WriteLine("We're going to divide 10 by 0 and see what happens...")
    	Console.WriteLine()
    
    	Dim i as Integer = 10
    	Dim j as Integer = 0
    	Dim k As Integer = i/j ' Error on this line. Control jumps to the catch block.
    
    Catch
    	Console.WriteLine("An error occurred.")
    Finally   ' This section is performed regardless of the above processing.
    	Console.WriteLine()
    	Console.WriteLine("This statement is always printed")
    End Try
    					
  7. Stiskněte kombinaci kláves CTRL + F5 spuštění projektu.
  8. Můžete použít objekt s výjimkou úlovky příkaz načíst podrobnosti o výjimce. Výjimka má řadu vlastností, které mohou pomoci při identifikaci pomoci, zdroj, nebo dokonce informace v zásobníku o výjimku. Tyto informace mohou být velmi užitečné pro sledování původní příčinu chyby nebo poskytuje lepší Vysvětlení jeho zdroj. Následující ukázka výjimku zachytí a poskytuje konkrétní chybovou zprávu. Před, může nahradit kód v Sub Main postup s následujícím kódem.

    Příklad 1
    ' This code shows how to catch an exception.
    Try
    	Console.WriteLine("We're going to divide 10 by 0 and see what happens...")
    	Console.WriteLine()
    
    	Dim i as Integer = 10
    	Dim j as Integer = 0
    	Dim k As Integer = i/j ' Error on this line. Control jumps to the catch block.
    
    Catch e As Exception  ' Perform code that deals with the exception
                          ' or informs the user what occurred.
    	Console.WriteLine("The following error occurred:")
    	Console.WriteLine(e.ToString())  ' Print the error message to the user.
    
    Finally   ' This section is performed regardless of the above processing.
    	Console.WriteLine()
    	Console.WriteLine("This statement is always printed")
    End Try
    					
    Příklad 2
    ' This code shows how to catch an exception.
    Try
    	Console.WriteLine("We're going to divide 10 by 0 and see what happens...")
    	Console.WriteLine()
    
    	Dim i as Integer = 10
    	Dim j as Integer = 0
    	Dim k As Integer = i/j ' Error on this line. Control jumps to the catch block.
    
    Catch e As Exception  ' Perform code that deals with the exception
                          ' or informs the user what occurred.
            Console.WriteLine("The following error occurred:")
            Console.WriteLine( e.Message )     ' Print the error message.
            Console.WriteLine( e.Source )      ' Name of application or object
                                               ' that caused the error
            Console.WriteLine( e.StackTrace )  ' String that contains the stack 
                                               ' trace for this exception
    Finally   ' This section is performed regardless of the above processing.
            Console.WriteLine()
            Console.WriteLine("This statement is always printed")
    End Try
    					
  9. Až do tohoto okamžiku se zabývat konkrétním případě Nespecifická výjimky. Avšak pokud znáte v předem co druh adjustaci výjimku, může zachytit předpokládaných výjimek a odpovídajícím způsobem zpracovat. Potom můžete použít více Úlovky blokuje všechny další výjimky, a také vypořádat se s nimi. Následující příklad ukazuje to.
    Module Module1
    Sub Main()
    
    ' Attempt to do some file processing.
    ' This can cause a number of potential exceptions.
    ' Note that you can use the specific exceptions to get extra information about that exception,
    ' but this example focuses on showing control execution for those exceptions.
    
    Try
    	File.Create("c:/temp/test.txt")  ' Can fail for a number of reasons
    
    Catch ioe As System.IO.IOException ' This error may occur if the Temp folder does not exist.
    	Console.WriteLine("An IO error occurred. The c:\temp folder does not exist")
    
    Catch se As System.Security.SecurityException ' You do not have the appropriate permission
                                                  ' to take this action.
    	Console.WriteLine("You don't have the security permissions to take this action!")
    
    Catch e As Exception    ' Catch all other exceptions.
    	Console.WriteLine( e.ToString() )  ' Print the standard exception information.
    End Try
    End Sub
    End Module
    Protože konfigurací počítače mohou být různé, v tomto vzorku krok může nebo nemusí může vyvolat výjimku. Chcete-li vynutit výjimku IO Změňte cestu k souboru do složky, která neexistuje na vašem počítač.

Odkazy

Další informace naleznete v tématu Microsoft.NET Framework Software Development Kit (SDK).

Vlastnosti

ID článku: 301283 - Poslední aktualizace: 12. května 2011 - Revize: 7.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 KB301283 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:301283

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