11/7/95 (* Delphi Code Snipit Example DefaultException with two exception handlers (one commented) for EDBEngineErrors and EDatabaseError(s) *) ... type TForm1 = class(TForm) procedure DefaultException(Sender: TObject; E: Exception); ... ... procedure TForm1.FormCreate(Sender: TObject); begin Application.OnException := DefaultException; database1.connected:=true; table1.open; { try database1.connected:=true; except on edatabaseerror do begin raise; end; end; table1.open; } end; procedure TForm1.DefaultException(Sender: TObject; E: Exception); var B: Byte; Err:TDBerror; estr: string; begin { estr:='ERROR:'; if E is EDatabaseError then begin showmessage(errstr + E.message); application.terminate; end else estr:=E.Message; showmessage(errstr + E.message); application.terminate; } {OR} begin MessageBeep(mb_IconExclamation); if E is EDBEngineError then begin EStr := 'Database Engine Error.'#10#13; for B := 0 to (EDBEngineError(E).ErrorCount -1) do begin EStr := EStr + ' Code: ' + IntToStr(EDBEngineError(E).Errors[B].ErrorCode); EStr := EStr + ', ' + EDBEngineError(E).Errors[B].Message + #10#13; end; MessageDlgPos(EStr, mtError, [mbOk], 0, Left + 10, Top + 25); application.terminate; end else if E is EDatabaseError then begin MessageDlgPos('Database Error.'#10#13 + ' ' + E.Message, mtError, [mbOk], 0, Left + 10, Top + 25); end else begin MessageDlgPos(E.Message, mtError, [mbOk], 0, Left + 10, Top + 25); end; end; end; procedure TForm1.Button1Click(Sender: TObject); begin try database1.connected:=true; except on edatabaseerror do begin raise; end; end; table1.open; end; ... BEC ID:CSxxxx