Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
lazarus-project / usr / share / lazarus / 2.0.10 / lcl / lclexceptionstacktrace.pas
Size: Mime:
unit LCLExceptionStackTrace;

{$mode objfpc}{$H+}

interface

uses
  SysUtils, LazLoggerBase, Forms;

implementation

type
  TEventContainer = class
  public
    procedure HandleApplicationException(Sender: TObject; E: Exception);
  end;

{ TEventContainer }

procedure TEventContainer.HandleApplicationException(Sender: TObject;
  E: Exception);
begin
  if not (E is EAbort) then
  begin
    DebugLn('TApplication.HandleException: ',E.ClassName);
    DebugLn(E.Message);
    DumpExceptionBackTrace;
    Application.ShowException(E);
  end;
end;

procedure HandleOnShowException(Msg: ShortString);
begin
  DebugLn('TApplication.HandleException: Strange Exception');
  DebugLn(Msg);
  DumpExceptionBackTrace;
end;

initialization
  SysUtils.OnShowException := @HandleOnShowException;
  Application.OnException := @TEventContainer(nil).HandleApplicationException;

end.