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
TApplication.OnException mit einem Event belegt und dort wenigstens diese Meldungen protokolliert.