Zitat von
Popov:
Also ich verstehe immer noch nicht das Problem. Hast du vorher überhaupt überlegt was du antwortest und ob es einen Sinn ergibt? Anscheinend nicht. Was habe ich gesagt? Ich hab gesagt, daß etwas nicht gespeichert wird. Du wirfst mir vor, daß ich nicht prüfe ob es gespeichert wird. Wo ist da die Logik?
Er wirft dir gar nichts vor. Du verstehst nur nicht, was wir alle die ganze Zeit meinen.
Beispiel:
Delphi-Quellcode:
if Registry.OpenKey(...) then
begin
...;
...;
end;
Damit überprüfst du zwar ob die Funktion fehlgeschlagen ist oder nicht, hift dir aber bei der fehlersuche nicht weiter. Du sollste es so machen:
Delphi-Quellcode:
if Registry.OpenKey(...)
then
begin
...;
...;
end
else
begin
ShowMessage(SysErrorMessage(getLastError));
// oder entsprechend eine Exception werfen.
end;
Zitat:
Wie du siehst ergibt das was du schreibst keinen Sinn.
Wie du siehst ergibt das, was er schreibt sehr wohl Sinn.
Genau genommen müsste man es sogar so machen, um alles abzufangen:
Delphi-Quellcode:
procedure WriteToRegistry;
var
reg: TRegistry;
begin
reg := TRegistry.Create;
try
try
reg.Root := ...;
if reg.OpenKey(...)
then
begin
...;
...;
end
else
raise Exception:Create(SysErrorMessage(GetLastError));
except
raise Exception:Create(SysErrorMessage(GetLastError));
end;
finally
reg.Free;
end;
end;
...;
try
WriteToRegistry
except
on E:
Exception do
ShowMessage(E.
Message);
end;
...;
Zitat:
Du bist ein sehr bedauernswerter Mensch. ...
Bitte klärt eure persönlichen Differenzen per E-Mail oder PN.