Fangblock

Definition - Was bedeutet Catch Block?

Ein catch-Block in C # ist ein optionaler Codeblock, der ausgeführt wird, wenn eine Ausnahme ausgelöst wird.

Der Catch-Block ist ein spezifischer Teil des Konstrukts für die außergewöhnliche Behandlung und wird mithilfe des Schlüsselworts "catch" in Kombination mit den Schlüsselwörtern "try" und "finally" implementiert und bildet das Mittel zur Implementierung der strukturierten Ausnahmebehandlung. Ein try-Block enthält den geschützten Code, der die Ausnahme verursachen kann. Es enthält Aussagen, die sich mit außergewöhnlichen Umständen befassen und sich von solchen unerwarteten Bedingungen erholen.

Catch Block bildet das Mittel zur Behandlung von Ausnahmen. Wenn diese nicht behandelt werden, kann dies zur Beendigung des gesamten Programms durch die .NET-Laufzeit führen. Ein catch-Block kann zur Behandlung beliebiger oder bestimmter Ausnahmen verwendet werden.

Technische.me erklärt Catch Block

Das Ausnahmebehandlungsmodell von Common Language Runtime (CLR) ermöglicht mehr als einen Catch-Block, von denen jeder für die Behandlung einer bestimmten Ausnahme ausgelegt ist. Immer wenn eine Ausnahme auftritt, sucht die CLR nach dem catch-Block, der die Ausnahme behandelt. Wenn die aktuell ausgeführte Methode keinen solchen Block enthält, sucht CLR in der Methode, die die aktuelle Methode im Aufrufstapel aufgerufen hat, danach. Wenn für diese Ausnahme im gesamten Code keine Übereinstimmungsklausel gefunden wird, wird die Ausführung des Threads gestoppt und dem Benutzer wird eine nicht behandelte Ausnahmemeldung angezeigt.

Im Folgenden finden Sie einige Tipps zur Verwendung eines Fangblocks:

  • Der Ausnahmetyp muss für den catch-Block erst angegeben werden, nachdem der Grund für das Auftreten bestimmter nicht vermeidbarer Ausnahmen (wie katastrophaler Systemausfall, API-Missbrauch usw.) ermittelt und die Wiederherstellung implementiert wurde, ohne dass die Anwendung in einem inkonsistenten oder inkonsistent ist ungültiger Status.
  • Der Fangblock sollte so positioniert sein, dass die spezifischeren Ausnahmen vor den weniger spezifischen gefangen werden müssen.
  • Catch-Block ohne Parameter wird als "Essensausnahmen" bezeichnet, da dies schwerwiegende Probleme unterdrücken kann, die schwer zu debuggen sind.
  • Der Fangblock kann zentralisiert werden, damit die Ausnahme von einem zentralen Ort aus behandelt werden kann.
  • Die Anweisung "throw" kann innerhalb des catch-Blocks verwendet werden, für den dasselbe in throw übergebene Ausnahmeobjekt beim erneuten Werfen erneut übergeben werden kann.
  • Innerhalb eines try-Blocks deklarierte Variablen können nicht außerhalb des Blocks verwendet werden.
  • Der Code kehrt nicht zum try-Block zurück, nachdem der catch-Block ausgeführt wurde.
  • Das Testen des Ausnahmebehandlungscodes im catch-Block ist wichtig, um eine Unterbrechung der Anwendung zu vermeiden.
  • Der Catch-Block sollte nicht für den Bereinigungscode verwendet werden.
  • Catch-Block ohne Parameter kann nicht zur Behandlung von nicht Common Language System-kompatiblen Ausnahmen verwendet werden (solche, die nicht von System.Exception abgeleitet sind).

Diese Definition wurde im Kontext von C # geschrieben