Postupy: Použití bloku Try/Catch pro zachycení výjimek
Umístěte části kódu, které mohou vyvolat výjimky do bloku try a umístěte kód, který zpracovává výjimky do bloku catch. Blok catch je řada příkazů začínající klíčovým slovem catch, následovaném typem výjimky a akcí, která má být provedena.
Poznámka |
---|
Téměř každý řádek kódu může způsobit výjimku, zejména výjimky, které jsou vyvolány modulem CLR (Common Language Runtime), jako je například OutOfMemoryException and StackOverflowException. Většina aplikací se nemusí zabývat těmito výjimkami, ale měli byste na to brát ohled při psaní knihoven pro použití dalšími aplikacemi.Doporučení týkající se informací, kdy umístit kód do bloku try naleznete v tématu Doporučené postupy pro zpracování výjimek. |
Následující příklad kódu používá blok try/catch k zachycení možné výjimky. Metoda Main obsahuje blok try s příkazem StreamReader, který otevře datový soubor s názvem data.txt a vypíše řetězec ze souboru. Za blokem try následuje blok catch, který zachytí jakoukoli výjimku vyplývající z bloku try.
Příklad
Imports System
Imports System.IO
Public Class ProcessFile
Public Shared Sub Main()
Try
Dim sr As StreamReader = File.OpenText("data.txt")
Console.WriteLine("The first line of this file is {0}", sr.ReadLine())
sr.Close()
Catch e As Exception
Console.WriteLine("An error occurred: '{0}'", e)
End Try
End Sub
End Class
using System;
using System.IO;
public class ProcessFile
{
public static void Main()
{
try
{
StreamReader sr = File.OpenText("data.txt");
Console.WriteLine("The first line of this file is {0}", sr.ReadLine());
sr.Close();
}
catch (Exception e)
{
Console.WriteLine("An error occurred: '{0}'", e);
}
}
}
using namespace System;
using namespace System::IO;
public ref class ProcessFile
{
public:
static void Main()
{
try
{
StreamReader^ sr = File::OpenText("data.txt");
Console::WriteLine("The first line of this file is {0}", sr->ReadLine());
sr->Close();
}
catch (Exception^ e)
{
Console::WriteLine("An error occurred: '{0}'", e);
}
}
};
int main()
{
ProcessFile::Main();
}
Tento příklad ukazuje základní příkaz catch, který zachytí jakoukoli výjimku. Obecně je dobrým programovacím postupem zachytit specifický typ výjimky spíše než použití základního příkazu catch. Další informace o zachycování specifických výjimek naleznete v tématu Používání specifických výjimek v bloku catch.
Viz také
Úkoly
Postupy: Použít specifické výjimky v bloku Catch
Postupy: Explicitně vyvolané výjimky
Postupy: Vytvořit uživatelem definované výjimky
Postupy: Použití bloku Finally.