Sdílet prostřednictvím


Postupy: Jak zachytit výjimku v jazyce Visual Basic

Tento příklad znázorňuje použití bloku Try a Catch k zachycení výjimky.

Příklad

Tento příklad znázorňuje použití bloku Try…Catch k zachycení OverflowException.

Tento příklad kódu je také dostupný jako IntelliSense fragment kódu. V dialogu pro výběr fragment kódu je umístěn v Visual Basic Language. Další informace naleznete v tématu How to: Insert IntelliSense Code Snippets.

Dim Top As Double = 5
Dim Bottom As Double = 0
Dim Result As Integer
Try
    Result = CType(Top / Bottom, Integer)
Catch Exc As System.OverflowException
    MsgBox("Attempt to divide by zero resulted in overflow")
End Try

Tento příklad vyžaduje:

  • Odkaz na obor názvů System.

Následující příklad kódu implementuje blok Try...Catch, který zpracovává Exception, IOException a všechny výjimky, které jsou odvozeny z IOException.

Try
    ' Add code for your I/O task here. 
Catch dirNotFound As System.IO.DirectoryNotFoundException
    Throw dirNotFound
Catch fileNotFound As System.IO.FileNotFoundException
    Throw fileNotFound
Catch pathTooLong As System.IO.PathTooLongException
    Throw pathTooLong
Catch ioEx As System.IO.IOException
    Throw ioEx
Catch security As System.Security.SecurityException
    Throw security
Catch ex As Exception
    Throw ex
Finally
    ' Dispose of any resources you used or opened in the Try block. 
End Try

Přidejte kód, který chcete provést do bloku Try.

Robustní programování

Použít tento blok kódu jako výchozí bod pro obalení datových operací v příkazu Try...Catch. Tento blok Try...Catch je navržen tak, aby zachytit a znovu vyvolal všechny výjimky. Toto nemusí být správná volba pro váš projekt. Podrobné informace o volbách zpracování vyjímek naleznete v Best Practices for Using IntelliSense Code Snippets.

Můžete omezit pravděpodobnost výskytu vyjímek použitím ovládacího prvku modelu Windows Forms, jako například OpenFileDialog Component (Windows Forms) nebo SaveFileDialog Component (Windows Forms), které omezují volbu uživatele na validní názvy souboru. Vlastnost FileInfo.Exists může zkontrolovat zda soubor existuje před tím, než se pokusíte o jeho otevření. Používání těchto ovládacích prvků a tříd není neprůstřelné. Systém souborů se může změnit v mezičase, kdy uživatel vybere soubor a kdy se spustí kód. Zpracování výjimek proto bude téměř vždy požadováno při práci se soubory.

Zabezpečení

Pro mnoho úkolů spojených se soubory, sestavení vyžaduje úroveň oprávnění udělené třídou FileIOPermission. Používáte-li kontext s částečnou důvěryhodnosti, kód může vyvolat výjimku kvůli nedostatečnému oprávnění. Další informace naleznete v tématu Základy zabezpečení přístupu kódu. Uživatel také potřebuje přístup k souboru a měl by existovat. Další informace naleznete v tématu Přehled technologie ACL.

Neprovádějte rozhodnutí o obsahu souboru na základě názvu přípony souboru. Například soubor Form1.vb nemusí být zdrojový soubor Visual Basic.

Viz také

Úkoly

Postupy: Jak vyvolat výjimku v jazyce Visual Basic

Postupy: Jak testovat kód s Try…Catch blokem v jazyce Visual Basic

Postupy: Jak uvolnit prostředky s pomocí Try…Finally bloku v jazyce Visual Basic

Postupy: Jak filtrovat vyjímky v Catch bloku v jazyce Visual Basic

Postupy: Kontrola k výjimce vnitřní výjimce (Visual Basic)

Poradce při potížích s výjimkou zpracování (Visual Basic)

Koncepty

Volba použití strukturovaných či nestrukturovaných (Visual Basic) zpracování výjimek