John, de exceptions die jij waarschijnlijk bedoelt zijn de exceptions die niet zijn afgevangen, niet afgehandeld, en dus "doorbubbelen" naar boven totdat het Delphi framework hen zelf ook niet meer niet zinnig weet af te handelen en dus wel genoodzaakt is om een dergelijk dialoogvenster te tonen met de melding. Zo'n "automatisch" standaard foutmelding-venster dient voor alle duidelijkheid dus wél altijd voorkomen te worden, al is het alleen al omdat de foutmelding in de verkeerde taal is. Dat kan bijvoorbeeld door een event handler voor Application.OnException te schrijven, daarin de foutmelding te vertalen en/of beslissen of je hem op een willekeurige manier aan de gebruiker wilt laten zien, of je hem in de code afhandeld, of dat je hem negeert.
Je kan ook er voor kiezen om exceptions niet centraal op te vangen, maar daar waar ze (kunnen) optreden.
Hierin filter je dan op het type foutmelding dat je verwacht. Foutmeldingen die je niet verwacht raise je opnieuw zodat ze weer naar boven komen in de centrale foutafhandeling.Delphi Code:
procedure TForm1.OKButtonClick(Sender: TObject); begin try SaveData; except on E: EMyDataException do ShowMessage(E.Message) else raise; end; end;
Bookmarks