Abgesehn davon
Zitat:
StrToBool(result); //
exception bekomme ich wenn der Wert ungleich 0 oder 1
Keine Zahl (Integer mit 0=False und Anderes=True) und nicht 'True' oder 'False'
Und warum kommt niemand auf die Idee
TryStrToBool oder
StrToBoolDef zu benutzen?
ich hatte bei uns im Programm früher sehr oft sowas wie
Delphi-Quellcode:
try
i := StrToInt(S);
except
i := 0;
end;
gefunden und das sogar in einigen OnPaint-Ereignissen.
Als jemand der öfters mal debuggt würde ich den Ersteller solcher Codes nur zu gern erwürgen.
Bei dir bekommt man dann z.B. zwei Exceptions im Debugger um die Ohren geworfen, anstatt nur Einer.
Zitat:
Delphi-Quellcode:
try
...
except
...
raise Exception.Create('
uninformativer nutloser Text, wo man anschließend nicht mehr weiß warum es knallte');
end;
Per se sollte man auch für solche Codes mindestens gesteinigt werden.
Gut, hier gibt es nur eine
Exception, womit es auch nur einen Zustand gibt,
aber grundsätzlich sollte man
niemals die ursprüngliche
Exception verfälschen und durch einen vollkommen nutzlosen Text
ersetzen.
Maximal den Text der
Exception um Zusatzinfos
erweitern.
Wenn das Programm ein Log hat, dann kann die originale Fehlermeldung auch dort rein.
z.B. wenn man FileName, MySectionIDENT, MySectionValue und Result in den Fehlertext aufnimmt, dann könnte man die originale Message durch dieses ersetzen, da der Informationsgehalt mindestens gleichwertig ist.
Und dann steht in deiner Meldung nichts davon, dass der Fehler behoben wurde. Wenn jetzt jemand auf die Idee kommt in die INI zu schauen, dann entdeckt er dort keinen Fehler mehr und hält den Programmierer dieser Software für dämlich, weil dort nichts falsch drin ist.
Außerdem, warum kein
GetINifileInfos_AS_BOOLEAN(S: string): Boolean
was eine
Exception liefert,
oder
GetINifileInfos_AS_BOOLEAN(S: string; out Value: Boolean): Boolean;
wo stattdessen der Status als Boolean geliefert wird?