Umgang mit Ausnahmen anmutig in .NET: Aufrechterhaltung wichtiger Details
Wenn es um Ausnahmen und sie in .NET-Anwendungen geht, ist es wichtig, den Kontext der ursprünglichen Ausnahme, einschließlich der InnerException
und der Stapelspur, beizubehalten. Zwei gängige Methoden zum Nachschlagen sind:
<code class="language-csharp">try { // Code that might throw an exception } catch (Exception ex) { throw ex; // Method 1 }</code>
<code class="language-csharp">try { // Code that might throw an exception } catch { throw; // Method 2 }</code>
Die Bedeutung der Stapelspurerhaltung:
Die Aufrechterhaltung der ursprünglichen Stapelspur ist für das Debuggen von entscheidender Bedeutung. Die Verwendung von throw;
(Methode 2) ist die bevorzugte Methode, um dies zu erreichen. Es stürzt die Ausnahme, ohne die Stapelspur zu ändern. Im Gegensatz dazu erstellt throw ex;
(Methode 1) eine neue Stapelverfolgung aus der Aussage throw
, die wertvolle Informationen über den Ursprung der Ausnahme verliert.
Anreicherung von Ausnahmen mit kontextuellen Informationen:
Manchmal ist es vorteilhaft, zusätzlichen Kontext zur Ausnahme von der Nachnahme hinzuzufügen. Dies kann erreicht werden, indem eine neue Ausnahmeinstanz erstellt und die ursprüngliche Ausnahme als InnerException
:
<code class="language-csharp">try { // Code that might throw an exception } catch (Exception ex) { throw new CustomException(ex, "Additional error details."); }</code>
Schlüsselempfehlungen:
throw;
, um zu vermeiden, den Kontext der ursprünglichen Ausnahme zu verlieren. Das obige ist der detaillierte Inhalt vonWie kann ich Ausnahmedetails beim erneuten Auslösen in .NET beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!