User Tools

Site Tools


globalerrorhandling

Under the app's main form:

Add this:

private
      procedure GlobalExceptionHandler(Sender: TObject; E: Exception);

Then create the procedure:

procedure Tformmain.GlobalExceptionHandler(Sender: TObject; E: Exception);
var
  LogFileName: string;
begin
  // Create unique log filename
  LogFileName := Format('error_%s.log', [FormatDateTime('yyyy-mm-dd_hh-nn-ss', Now)]);

  // Save error log
  with TStringList.Create do
  try
    Add('=== Application Error ===');
    Add('Time: ' + DateTimeToStr(Now));
    Add('Error Type: ' + E.ClassName);
    Add('Error Message: ' + E.Message);
    Add('=========================');
    SaveToFile(LogFileName);
  finally
    Free;
  end;
  MessageDlg('Error detected' + sLineBreak+sLineBreak + 'Take a screenshot and send to admin' + sLineBreak + 'Error: ' + E.Message, mtError, [mbOK],0);
end;

In form create, add this:

procedure Tformmain.FormCreate(Sender: TObject);
begin
   Application.OnException := @GlobalExceptionHandler;
end;    
globalerrorhandling.txt · Last modified: by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki