Forums Neueste Beiträge
 

Exceptions schmeissen...

18/09/2007 - 11:45 von Mirco Kaffsach | Report spam
Hi Ihrs,

keine Ahnung ob das hier so angebracht ist, aber ich habe eine kleine Frage
bezüglich sauberer Programmierung.

Wenn ich eine DLL Programmiere die viele verschiedene Programme nutzen, dann
bin ich mit einem Kollegen in eine heftige Diskussion geraten, ob man
Exceptions die innerhalb der DLL auftreten nach draußen schmeisst, oder aber
abfàngt und eine durch eine Schnittstelle definiert geartete Fehlermeldung
nach außen schmeisst.

Ich bin der Meinung das es nicht falsch und wesentlich komfortabler zu
prorammieren ist, wenn man Exceptions weiterreicht, aus der DLL heraus.

Mein Kollege meint, es dürfen nur in einer Schnittstelle definierte Fehler
ausgegeben werden.

Wie handhabt Ihr das so bei Euren Projekten.

Und gibt es evtl. eine Newsgroup in der genau solche Themen behandelt
werden?

LG und Danke,

Mirco
 

Lesen sie die antworten

#1 Frank Dzaebel
18/09/2007 - 12:36 | Warnen spam
Hallo Mirco,

Wenn ich eine DLL Programmiere die viele verschiedene
Programme nutzen, ... ob man Exceptions die innerhalb
der DLL auftreten nach draußen schmeisst, oder aber
abfàngt und eine durch eine Schnittstelle definiert
geartete Fehlermeldung nach außen schmeisst.



Ihr seid beide dicht dran.
"Normal" Exceptions in Methoden aus DLLs in Fehler-Fàllen werfen.
Im Prinzip also nichts anderes, als etwa eine
Framewok-DLL. Mal als Beispiel:

[Image.Save-Methode (String)]
http://msdn2.microsoft.com/de-de/li...83wah.aspx

Wobei die Exceptions im XML-Tag:
/// <exception cref=""></exception>
zu dokumentieren sind.

In einer Schnittstelle sind Exception-Deklarartionen
in C# syntaktisch gar nicht möglich/vorgesehen, ggf.
in einem Fehlervertrag bei WCF, der über Attribute làuft.

Es gilt allgemein, dass ControlFlow nicht über
Exceptions programmiert werden soll.
Also darf/sollte eine Bibliotheks-Methode solche
Fehler nur in sehr *seltenen* Fàllen zu werfen haben.
Dies sollte beim Design mitberücksichtig werden, denn
in solchen Fàllen kann ein bool o.à. als Rückgabewert
best practice sein.

Details ggf. z.B.:

[Exception Management Architecture Guide]
http://msdn2.microsoft.com/en-us/li...54599.aspx


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

Ähnliche fragen