Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#11

AW: TPath.Combine, TPath.GetTempPath threadsicher?

  Alt 29. Dez 2014, 14:22
Sehr grausam, wie hier manche mit den Exceptions umgehen ... indem man versucht diese mit aller Gewalt zu umgehen

Das ist doch absoluter Schwachfug und führt einzig und alleine dazu, dass irgendwas nicht funktioniert, aber keiner merkt es.
Delphi-Quellcode:
Function CopyStream2File(ResourceID: string): String;
var
    ResStream: TResourceStream;
begin
    ResStream := TResourceStream.Create(HInstance, ResourceID, RT_RCDATA);
    try
      //MP3 File aus Resource laden und in Filesystem ablegen
      Result := TPath.Combine(TPath.GetTempPath, 'tmp.mp3');

      ResStream.Position := 0;
      ResStream.SaveToFile(fName);
    finally
      ResStream.Free;
    end;
end;

begin
  Play( CopyStream2File('42') );
end;
Wann passiert es denn, dass ich hier eine Exception bekomme?
  • Die ResourceID ist falsch, weil nicht vorhanden -> Fehler beim Programmierer
  • Das Temp-Verzeichnis ist nicht beschreibbar -> Fehler beim Anwender
Aber anstatt sich den Hinweis hier um die Ohren zu hauen, wird der einfach hübsch versteckt, weil das sieht ja dann "besser" aus. Voll profimässig

Exceptions sind nicht böse, sondern sehr hilfreich.

Und wenn man die Exceptions wirklich nicht anzeigen möchte, dann geht das ganz simpel, indem man Delphi-Referenz durchsuchenTApplication.OnException mit einem Event belegt und dort wenigstens diese Meldungen protokolliert.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat