Ako chytiť výnimiek v jazyku Visual Basic 2005 alebo Visual Basic.NET

Preklady článku Preklady článku
ID článku: 301283 - Zobraziť produkty, ktorých sa tento článok týka.
Pre Microsoft Visual C# 2005 a Microsoft Visual C#.ČISTÁ verziu tohto článku, pozri 308345.

Pre Microsoft Visual Basic 6.0 verziu tohto článku, pozri 191474.
Rozbaliť všetko | Zbaliť všetko

Na tejto stránke

SUHRN

Lov a zaoberajú výnimky je norma Programovacia úloha. Tento článok ukazuje ako používať TRY-catch-konečne blok chytiť výnimku. A TRY-catch-konečne blok je "obal", ktoré vám dať okolo akýkoľvek kód kde existuje možnosť výnimku.

A TRY-catch-konečne blok pozostáva z nasledovných bodov:
  • Akýkoľvek kód, ktorý môže hádzať výnimku je umiestnený vnútri skúste blok.
  • Ak je hodený výnimku, úlovok zapísaná bloku, a program môže vykonať vhodné operácia obnoviť alebo užívateľovi alert.
  • Kód v Nakoniec blok je vždy popravený a môžete vykonať čistenie po Vyskytla sa výnimka. The Nakoniec blok je voliteľný.

Požiadavky

Nasledujúci zoznam popisuje odporúčané hardvér, softvér, sieťovú infraštruktúru a balíky service pack, ktoré potrebujete:
  • Microsoft Windows Server 2003, Microsoft Windows 2000 Professional, Windows 2000 Server, Systém Windows 2000 Advanced Server alebo Microsoft Windows NT 4.0 Server
  • 2005 Microsoft Visual Basic alebo Microsoft Visual Basic.NET

Podrobný príklad

  1. Vytvorte novú konzolovú aplikáciu v roku 2005 jazyka Visual Basic alebo Visual Basic.NET.
  2. V postupe Sub hlavné vložiť kód vzorky, ktoré takto. Vzorka vyhlasuje a inicializuje tri ukazovatele prekrývacieho Inicializácia "k" spôsobuje 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. Stlačte kláves F5 zobrazenie výnimkou.
  4. Obtekanie Skúste vedľajšieho úlovku výkaz okolo váš kód zachytiť sa vyskytla chyba. Nasledujúce kód úlovky všetky chyby, ktoré sú hádzať do kódexu a zobrazuje všeobecný chybové hlásenie. Nahradiť kódom v Sub hlavnej procedúry s nasledujúcim 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. Stlačte CTRL + F5 na spustenie projektu. Všimnite si, že chyba správu od úlovok zobrazí sa bloku.
  6. Ak niektoré čistenie alebo následnom spracovaní majú potrebné urobiť bez ohľadu na chybu, použite Nakoniec časť TRY-catch-konečne vyhlásenie. Kód v Nakoniec časť vyhlásenia je vždy executed, bez ohľadu na výnimka. Nasledujúci kód zobrazí "Toto vyhlásenie sa vždy vytlačí" v konzole, aj keď nevyskytla sa žiadna chyba. Nahradiť Sub hlavný kód s nasledujúci 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. Stlačte CTRL + F5 na spustenie projektu.
  8. Môžete použiť výnimkou objekt s úlovok vyhlásenie na získanie podrobností o výnimku. Výnimku má niekoľko vlastností, ktoré vám pomôže rozpoznať pomôcť, zdroj, alebo dokonca zhromaždiť informácie o výnimku. Tieto informácie môžu byť veľmi užitočné pre rozkrytí pôvodnou príčinou výnimku alebo poskytovať lepšie vysvetlenie jeho zdroj. Tieto vzorky úlovky výnimku a dáva konkrétne chybové hlásenie. Ako predtým, môžete nahradiť kódom v hlavných Sub postup s nasledujúcim kódom.

    Prí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
    					
    Prí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 tohto bodu, ste sa zaoberať konkrétneho prípadu osobitné výnimky. Avšak, ak viete v vopred čo druh výnimka sa chystá vyskytnúť, si môžete chytiť predpokladané výnimky a proces zodpovedajúcim spôsobom. Potom môžete použiť viacero Úlovok bloky chytiť všetky ostatné výnimky a vysporiadať sa s nimi rovnako. Tieto vzorky dokazuje 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
    Pretože konfigurácie počítača môže byť rôzne, vzorky v tomto krok môžu alebo nesmú hádzať výnimku. Ak chcete vynútiť výnimka IO, zmeniť cestu k súboru do priečinka, ktorý neexistuje na vaše počítač.

ODKAZY

Ďalšie informácie nájdete v téme Microsoft.NET Framework Software Development Kit (SDK).

Vlastnosti

ID článku: 301283 - Posledná kontrola: 31. októbra 2011 - Revízia: 2.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Kľúčové slová: 
kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB301283 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem:301283

Odošlite odozvu

 

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