Wie implementiert man zielführend ein gutes Fehlerhandling? App.Exe - Module

08/01/2010 - 21:56 von Claudia Maier | Report spam
Hallo,

wie implementiert man zielführend ein gutes Fehlerhandling?

MeineApp.exe
Assembly1.DLL
Assembly2.DLL

Möglichkeit 1:
##### Modul - Assembly1 ########
try
{
Modul - Assembly1
}
catch (Exception eChange)
{
System.Diagnostics.Trace.TraceError(eChange.Message);
System.Diagnostics.Trace.IndentLevel = 0;
System.Diagnostics.Trace.WriteLine(string .Format
("Error in method_Number001 {0}", eChange.Message),
Global.TRACE_CATEGORY_M1);
}
-

Möglichkeit 2:
##### Modul - Assembly1 ########
try
{
Modul - Assembly1
}
catch (Exception eChange)
{
System.Diagnostics.Trace.TraceError(eChange.Message);
System.Diagnostics.Trace.IndentLevel = 0;
System.Diagnostics.Trace.WriteLine(string .Format
("Error in method_Number001 {0}", eChange.Message),
Global.TRACE_CATEGORY_M1);

throw new System.ArgumentException(eChange.Message);
}
-

Was ist besser?
Das try - catch im Modul oder in der Hauptanwendung zu haben?
Sprich das Modul, die Assembly reicht die Execption dann weiter.


Viele Grüße Claudia
 

Lesen sie die antworten

#1 Frank Dzaebel
10/01/2010 - 10:00 | Warnen spam
Hallo Claudia,

wie implementiert man zielführend ein gutes Fehlerhandling?
MeineApp.exe ... Assembly1.DLL ... Assembly2.DLL



Hàufig ist das Ziel (bzw. best practice) ja eine einheitliche
Fehlerbehandlung in der Applikation.
Da wiederum das DRY Prinzip gilt, ...

[Don't repeat yourself - Wikipedia]
http://de.wikipedia.org/wiki/Don%E2...t_yourself

würde man versuchen, dass an "einer" Stelle zu behandeln.
Auch ein globaler Exception Handler ist da zum Teil möglich:

[Application.ThreadException-Ereignis (System.Windows.Forms)]
http://msdn.microsoft.com/de-de/lib...ption.aspx

[MSDN Chat - Fehlerbehandlung in .NET Programmen]
http://msdn.microsoft.com/de-de/cc405402.aspx

In größeren Szenarien kann man sich auch ggf. gut etwas
von der Enterprise Library abschauen:

[Design of the Exception Handling Application Block]
http://msdn.microsoft.com/en-us/lib...03281.aspx
___________

Ansonsten Empfehlungen:

[Richtlinien Ausnahmebehandlung]
http://msdn.microsoft.com/de-de/lib...29005.aspx

[Entwurfsrichtlinien für Ausnahmen]
http://msdn.microsoft.com/de-de/lib...29014.aspx

[Empfohlene Vorgehensweise für die Ausnahmebehandlung]
http://msdn.microsoft.com/de-de/lib...hszts.aspx

[Behandeln und Auslösen von Ausnahmen]
http://msdn.microsoft.com/de-de/lib...yeyab.aspx

[Verwenden von Ausnahmen (C#-Programmierhandbuch)]
http://msdn.microsoft.com/de-de/lib...73161.aspx

Jede Lösung, die den Empfehlungen nahe kommt,
ist wàhlbar.


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen