Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 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.
$2B or not $2B

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