Hier ist mein Code:
public void ReadSomeFile(string filePath)
{
if (!File.Exists(filePath))
throw new FileNotFoundException();
var stream = new FileStream(filePath, ....)
.....
}
Soll ich selbst eine Ausnahme auslösen (siehe File.Exists
Scheck)? FileStream
wird bereits werfen, FileNotFoundException
wenn die Datei nicht existiert. Was ist hier gute Programmierpraxis? Die Code-Analyse besagt, dass wir unsere Parameter validieren sollten. Aber wenn ich diesen Parameter direkt an eine andere Methode (meinen oder einen anderen Code) übergebe und diese Methode selbst eine Ausnahme auslöst, was ist dann der Vorteil der Validierung von Argumenten in meinem Code?
FileNotFoundException
- tatsächlich lädt es nur zu Problemen mit den Rennbedingungen ein. Entweder Sie behandeln die Ausnahme, lassen sie weitergeben oder schließen sie in Ihre eigene Ausnahme ein. Dies entspricht "Ich weiß, was ich damit machen soll", "Ich weiß nicht, was ich damit machen soll" bzw. "Ich möchte das höher auf dem Stapel behandeln".