Toon posts:

[Delphi] EDBEditError voorkomen met try... except

Pagina: 1
Acties:

Verwijderd

Topicstarter
Als ik een oncorrecte datum invul geeft hij de volgende error: Project Project1.exe raised exception class EDBEditError with message 'Invalid input value. Use escape ket to abandon changes'. Process stopped. Use Step or Run to continue

Dus dacht ik er een try except statement op los te laten:


code:--------------------------------------------------------------------------------
try
if MaskEdit2.Text <> ' - - ' then
AdministratieForm.ADOQuery_CaseInvoeren.FieldByName('Einddatum').AsString := MaskEdit2.Text;
except
on EDBEditError do MessageDlg('Vul de datum correct in.' + #13 + 'Voorbeeld: 14-05-83', mtError, [mbOK], 0);
end;
--------------------------------------------------------------------------------


Maar toch wordt de error niet goed opgevangen, kan iemand mij vertellen wat ik fout doe?

Verwijderd

Dit komt omdat: "Stop on Delphi Exceptions" aangevinkt staat bij de debugger options.

Die moet je dus ff uit zetten.

Verwijderd

Topicstarter
dat heb ik nu gedaan maar ik krijg dan een "standaard" error van delphi zelf,

ik wil ipv die error, mijn eigen error-message (MessageDlg('Vul de datum correct in.' + #13 + 'Voorbeeld: 14-05-83', mtError, [mbOK], 0))

is dat ook mogelijk??

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
Die Delphi error krijg je omdat je het programma in je IDE draait.
Als je de applicatie zo opstart (buiten de IDE, door bv. te dubbelklikken op de exe in Explorer), dan ga je die Delphi error niet meer krijgen, maar enkel je eigen foutboodschap.

https://fgheysels.github.io/


Verwijderd

Topicstarter
Hoi,

ik heb mijn proggie buiten de IDE gedraaid maar ik krijg nog steeds die Delphi error en niet de mijne :?

weet je misschien hoe dat komt?

  • Paul
  • Registratie: September 2000
  • Laatst online: 26-05 18:02
Schijnbaar is je error geen EDBEditError maar een andere :)

Haal "on EDBEditError do" eens weg :) Dan krijg je bij IEDERE exceptie die in dat try-block optreed je MessageDlg, ipv alleen bij een EDBEditError.

Is het namelijk geen EDBEditError maar een andere, dan gaat Delphi op zoek naar een except-statement dat die specifieke exceptie WEL opvangt, en als je daar niets voor regelt krijg je dus de 'generieke' error.

"Your life is yours alone. Rise up and live it." - Richard Rahl
Rhàshan - Aditu Sunlock


Verwijderd

Topicstarter
Weer wat geleerd :D

Bedank allemaal!
Pagina: 1