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

Black Friday: Vorsicht vor schädlichen QR-Codes

Bösartige QR-Codes, die per E-Mail versendet werden, eignen sich sehr gut, um Spam-Filter zu umgehen.

8 Stunden ago

Black Friday: Zahl der ominösen Shopping-Websites steigt

Unsichere Websites und Phishing-Mails in Verbindung mit Black Friday können kauffreudigen Konsumenten zum Verhängnis werden.

8 Stunden ago

SmokeBuster bekämpft SmokeLoader

Malware SmokeLoader wird weiterhin von Bedrohungsakteuren genutzt, um Payloads über neue C2-Infrastrukturen zu verbreiten.

15 Stunden ago

Taugen Kryptowährungen als Unterstützer der Energiewende?

Bankhaus Metzler und Telekom-Tochter MMS testen, inwieweit Bitcoin-Miner das deutsche Stromnetz stabilisieren könnten.

1 Tag ago

Supercomputer-Ranking: El Capitan überholt Frontier und Aurora

Mit 1,7 Exaflops ist El Capitan nun der dritte Exascale-Supercomputer weltweit. Deutschland stellt erneut den…

1 Tag ago

Ionos führt neue AMD-Prozessoren ein

Der deutsche Hyperscaler erweitert sein Server-Portfolio um vier Angebote mit den neuen AMD EPYC 4004…

1 Tag ago