Fangen von Exceptions

13/02/2009 - 20:25 von Thomas Kehl | Report spam
Hallo zusammen.

Ich verstehe echt die Welt nicht mehr. Ich habe folgenden Code:

private bool RegisterPrinterMonitor() {
try {
using (var outputControlConfigurationClient = new
ConfigurationClient()) {
try {
outputControlConfigurationClient.Open();
return
outputControlConfigurationClient.RegisterPrinterMonitor(this.GetPrinterMonitorId(),
string.Format("net.tcp://{0}", Environment.MachineName), "9876");
} catch (CommunicationException e) {
log.Warn("Coordinator not available to register
printermonitor: " + this.GetPrinterMonitorId());
return false;
}
}
} catch (Exception e) {
log.Error("Failed to register printermonitor: " +
this.GetPrinterMonitorId(), e);
}
return false;
}

Nun wird u.U. eine CommunicationException geworfen die auch gefangen wird.
In diesem Falle soll diese Methode die Warnung loggen und false zurückgeben.
Das Problem ist nun, dass in den catch-Exception-Block danach auch noch
reingesprungen wird. Dies möchte ich aber nicht. Bis anhin bin ich
eigentlich immer davon ausgegagen, dass wenn eine Exception gefangen wurde
diese nicht noch von einem weiteren Catch-Block gefangen wird (bzw. werden
kann). Ist das falsch? - Kann mich hier jemand aufklàren? Vielen herzlichen
Dank!

Viele Grüsse, Thomas
 

Lesen sie die antworten

#1 Frank Dzaebel
13/02/2009 - 21:55 | Warnen spam
Hallo Thomas,

Nun wird u.U. eine CommunicationException geworfen die auch gefangen wird.
In diesem Falle soll diese Methode die Warnung loggen und false
zurückgeben. Das Problem ist nun, dass in den catch-Exception-Block danach
auch noch reingesprungen wird. Dies möchte ich aber nicht.



Das ist auch alles richtig gedacht, normal wird durch
"return false" hier zurückgesprungen.
Nur könnte trotzdem Dein geschildertes
Verhalten auftreten, wenn "zum Beispiel" in Deiner
ConfigurationClient-Klasse das Dispose eine Exception
verursacht.


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

Ähnliche fragen