Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.034 Beiträge
 
Delphi 12 Athens
 
#4

AW: Defektes Exception-Handling

  Alt 21. Mär 2016, 12:34
Arrrrg

Delphi-Quellcode:
CloseHandle(0); // geht
CloseHandle(INVALID_HANDLE_VALUE); // geht
CloseHandle(123456789); // GEHT NICHT
Aber eigentlich sollte nirgendwo ein "ungültiges" Handle vorkommen, aber vielleicht
Muss ich heute Abend nochmal in Ruhe nachsehen.

Und sowas ist ja keine Lösung.
Delphi-Quellcode:
function CloseHandle(hObject: THandle): Boolean;
begin
  if IsDebuggerPresent then
    try
      Result := {Windapi.}Windows.CloseHandle(hObject);
    except
      on E: EExternalException do
        if not Assigned(E.ExceptionRecord) or (E.ExceptionRecord.ExceptionCode <> $C0000008) then
          raise;
      on E: Exception do
        raise;
    end
  else
    Result := {Windapi.}Windows.CloseHandle(hObject);
end;
[edit]
Mir fällt grade ein, dass man im Debugger die Exception ignorieren und vom Debugger behandeln lassen könnte.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (21. Mär 2016 um 13:23 Uhr)
  Mit Zitat antworten Zitat