Fehlersuche: Korrekte Ausnahmebehandlung in C#

Entwickler übersehen oft, wie wichtig die Ausnahmebehandlung ist, was dann zu Lasten ihres eigenen Codes geht. Deshalb wird im folgenden die Ausnahmebehandlung in C# gezeigt. Außerdem werden einfache Möglichkeiten vorgestellt, um Codeschnipsel („Code Snippets“) zu Anwendungscode hinzuzufügen, um bestimmte Fehler, die eine Anwendung zum Absturz bringen können, zu vermeiden.

Strukturierte Ausnahmebehandlung

Das .NET-Framework bietet einen Standardmechanismus für Fehlerberichte, der als strukturierte Ausnahmebehandlung bezeichnet wird. Dieser Mechanismus beruht auf Ausnahmen zur Meldung eines Fehlers in der Anwendung. In .NET sind Ausnahmen Klassen, die Fehlerinformationen liefern. Der Code muss so geschrieben werden, dass er codegenerierte Ausnahmen erkennt und angemessen behandelt.

Bei der Arbeit mit Ausnahmen in C# muss auf folgende Komponenten im Code geachtet werden:

  • Codeblock, der zu einer Ausnahme führen (eine Ausnahme auslösen) könnte (Try-Block).
  • Codeblock, der ausgeführt wird, falls bei der Verarbeitung des Codeblocks eine Ausnahme ausgelöst wird (Catch-Block).
  • Codeblock, der nach der Ausnahmebehandlung ausgeführt wird (optional, Finally-Block).

Ausnahmeklasse

Ausnahmeklassen im .NET-Framework werden aus einer System.Exception-Klasse abgeleitet. Die am häufigsten verwendeten Mitglieder dieser Klasse sind:

  • HelpLink ist eine Verknüpfung zu einer Hilfedatei mit Informationen über die Ausnahme.
  • Message ist Text, der die Details eines Fehlers angibt.
  • Source stellt den Namen eines Objekts oder einer Ausnahme dar, das oder die die Ausnahme ausgelöst hat.
  • StackTrace ist die Liste der aufgerufenen Methoden im Stack.
  • TargetSite ist der Name der Methode, die die Ausnahme ausgelöst hat.

Try-Catch-Finally-Block

Zur Behandlung einer Ausnahme in C# wird ein Try-Catch-Finally-Block eingesetzt.

  • Eine Try-Anweisung legt fest, dass ein Codeblock während der Ausführung auf Ausnahmen überwacht werden soll.
  • Die Catch-Anweisung gibt an, welcher Code beim Auftreten einer Ausnahme ausgeführt werden soll.
  • Mit der Finally-Anweisung wird ein Codeblock festgelegt, der nach der Ausführung eines Try-Codeblocks ausgeführt werden soll. Dieser Codeblock wird auf jeden Fall ausgeführt, unabhängig davon, ob eine Ausnahme vorliegt oder nicht. In der Praxis wird er häufig für eventuell erforderlichen Bereinigungscode (Cleanup-Code) verwendet.

Page: 1 2

ZDNet.de Redaktion

Recent Posts

Microsoft verschiebt erneut Copilot Recall

Die Entwickler arbeiten noch an weiteren „Verfeinerungen“. Windows Insider erhalten nun wohl eine erste Vorschau…

3 Stunden ago

GenKI im Job: Mitarbeitende schaffen Tatsachen

Laut Bitkom-Umfrage werden in jedem dritten Unternehmen in Deutschland private KI-Zugänge genutzt. Tendenz steigend.

5 Stunden ago

97 Prozent der Großunternehmen melden Cyber-Vorfälle

2023 erlitten neun von zehn Unternehmen in der DACH-Region Umsatzverluste und Kurseinbrüche in Folge von…

6 Stunden ago

„Pacific Rim“-Report: riesiges, gegnerisches Angriffs-Ökosystem

Der Report „Pacific Rim“ von Sophos beschreibt Katz-und-Maus-Spiel aus Angriffs- und Verteidigungsoperationen mit staatlich unterstützten…

9 Stunden ago

DeepL setzt erstmals auf NVIDIA DGX SuperPOD mit DGX GB200-Systemen

NVIDIA DGX SuperPOD soll voraussichtlich Mitte 2025 in Betrieb genommen und für Forschungsberechnungen genutzt werden.

10 Stunden ago

Latrodectus: Gefährlicher Nachfolger von IcedID

Latrodectus, auch bekannt als BlackWidow, ist auch unter dem Namen LUNAR SPIDER bekannt.

10 Stunden ago