try/catch vs. if/else

18/05/2009 - 14:18 von Florian Wollenschein | Report spam
Hallo Newsgroup,

ich habe eine kurze Frage, die mir eben in den Sinn kam:

Nehmen wir folgenden Code:

if (File.Exists(@"Contacts.xml"))
{
öffnen usw.
}
else
{
messagebox ...
}

Wenn ich eine solche Situation mit if-else lösen kann, sollte ich dann
trotzdem statt eben if und else try und catch verwenden?

Welche Vorteile hàtte das Verwenden einer Exception hier, falls es
Vorteile gibt...

Gruß,
Florian
 

Lesen sie die antworten

#1 Harald M. Genauck
18/05/2009 - 17:04 | Warnen spam
Hallo Florian,

ich habe eine kurze Frage, die mir eben in den Sinn kam:

Nehmen wir folgenden Code:

if (File.Exists(@"Contacts.xml"))
{
öffnen usw.
}
else
{
messagebox ...
}

Wenn ich eine solche Situation mit if-else lösen kann, sollte ich
dann trotzdem statt eben if und else try und catch verwenden?

Welche Vorteile hàtte das Verwenden einer Exception hier, falls es
Vorteile gibt...



Beim Versuch, eine Datei zu öffnen, hat eine Exception den Vorteil,
dass sie einen Fehler genau im Moment des gewünschten Zugriffs
wiedergibt. Ein Fehler braucht dabei nicht nur alleine auf der
Nicht-Existenz einer Datei zu beruhen, sondern es können auch andere
Fehler auftreten, etwa Sperrung (von anderer Anwendung exklusiv
geöffnet), unzureichende Dateizugriffsrechte, Netzwerkprobleme u.v.m.

Vorher schon die Existenz zu prüfen, hilft da nicht viel. In der Zeit
zwischen dieser Prüfung und dem tatsàchlichen Öffnungszugriff kann die
Datei auch schon làngst wieder gelöscht/verschoben worden sein. Der
Öffnungszugriff würde dann also trotz der vorherigen Prüfung eine
Ausnahme auslösen, die eben auch trotzdem abgefangen werden müsste.


Viele Grüße

Harald M. Genauck

"VISUAL STUDIO one" - http://www.visualstudio1.de (Chefredakteur)
"ABOUT Visual Basic" - http://www.aboutvb.de (Herausgeber)

Ähnliche fragen