Einzelnen Beitrag anzeigen

philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
859 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: App hängt im Startbildschirm fest (seit 10.3.3), außer man startet im Debugger-Mo

  Alt 9. Mär 2020, 21:33
Ich würde zwei Dinge angehen:
a) Ein filebasiertes Logging einbauen, damit man auch im Release-Modus (z.B. auch beim Kunden) sieht, wo die Anwendung was macht. Ist relativ einfach umsetzbar, ich habe auch einen Button in der App, wo per Indy-Mail die letzten 20 Logs als Mail geschickt werden können.
b) Einen Exception-Handler einbauen, der alle in der Anwendung geworfenen Exceptions fängt. Ich persönlich habe seit iOS 13.x das Gefühl, das ganz viele Exception geworfen werden, für die man nichts kann, die man aber auch getrost ignorieren kann.

Code:
procedure xxx.FormCreate(Sender: TObject);
  ...
  Application.OnException := TgoExceptionReporter.ExceptionHandler;
  TMessageManager.DefaultManager.SubscribeToMessage(TgoExceptionReportMessage, HandleExceptionReport);

procedure xxx.HandleExceptionReport(const Sender: TObject; const M: TMessage);
var Report: IgoExceptionReport;
begin
  if (finishedFormActivated and formDestroyReached) then
    exit;
  Assert(M is TgoExceptionReportMessage);
  Report := TgoExceptionReportMessage(M).Report;
  if (pos('IOAccelResourceGetResidentDataSize',report.Report)>0) then
    exit; //ignored
  if (sender<>nil) then
    mlog.error('Exception from '+sender.ToString+' (showInfo:'+TStringUtils.BoolToStr(doShowInfo)+'): '+#13#10+report.report)
  else
    mlog.error('Exception (showInfo:'+TStringUtils.BoolToStr(doShowInfo)+'): '+#13#10+report.report);
  if ((finishedFormActivated=false) or (cbConfigAutomatedSendLogs.isChecked)) then
    btDownloadSendLogsClick(Sender);
end;
  Mit Zitat antworten Zitat