Omgaan met fouten en uitzonderingen in Delphi-toepassingen

Helaas bevat het bouwen van applicaties codering. Ongeacht hoe zorgvuldig u uw programma schrijft / debugt, het is onmogelijk om u elke situatie voor te stellen die fout kan gaan. De onervaren gebruiker kan bijvoorbeeld proberen een niet-bestaand bestand te openen of een slechte waarde in een gegevensveld in te voeren.
Gebruikers maken fouten en we moeten bereid zijn deze fouten waar en wanneer mogelijk af te handelen / te voorkomen.

Fouten, uitzonderingen?

Een uitzondering is over het algemeen een foutconditie of een andere gebeurtenis die de normale uitvoeringsstroom in een applicatie onderbreekt. Telkens wanneer een fout het gevolg is van het verwerken van een coderegel, maakt (verhoogt) Delphi een object-afstammeling van TObject genaamd het exception-object.

Bewaakte blokken

Een toepassing reageert op een uitzondering door een beëindigingscode uit te voeren, de uitzondering af te handelen of beide. De manier om het traceren van fouten / uitzonderingen binnen een bepaalde code mogelijk te maken, moet plaatsvinden binnen een beveiligd blok met instructies. De algemene code ziet er als volgt uit:

instagram viewer

proberen. {bewaakt codeblok} behalve. op beginnen. {exception block-handles SomeException} eindigen; einde;

EEN probeer / behalve statement voert de instructies uit in het bewaakte codeblok. Als de instructies worden uitgevoerd zonder dat er uitzonderingen worden gegenereerd, wordt het uitzonderingsblok genegeerd en wordt de controle doorgegeven aan de instructie die volgt op het einde-trefwoord.

Voorbeeld:

... Nul: = 0; proberen. dummy: = 10 / nul; behalve. op EZeroDivide doen. MessageDlg ('Kan niet delen door nul!', MtError, [mbOK], 0); einde;... 

Bronnen beschermen

Wanneer een deel van de code een bron ophaalt, is het vaak nodig om ervoor te zorgen dat de bron opnieuw wordt vrijgegeven (anders krijgt u mogelijk een geheugenlek), ongeacht of de code normaal wordt voltooid of wordt onderbroken door een uitzondering. In dit geval wordt de syntaxis gebruikt Tenslotte zoekwoord en ziet eruit als:

{wat code om middelen toe te wijzen} proberen. {bewaakt codeblok} Tenslotte. {termination blok - code om bronnen vrij te maken} einde;

Voorbeeld:

... AboutBox: = TAboutBox. Creëer (nihil); proberen. AboutBox. ShowModal; Tenslotte. AboutBox. Vrijlating; einde;... 

Toepassing. OnException

Als uw toepassing de fout die de uitzondering veroorzaakte niet afhandelt, gebruikt Delphi de standaard uitzonderingshandler - er verschijnt alleen een berichtvenster. U kunt overwegen om code te schrijven in de OnException-gebeurtenis voor het TApplication-object, om fouten op applicatieniveau te onderscheppen.

Breek uitzonderingen

Wanneer u een programma bouwt met uitzonderingsverwerking, wilt u misschien niet dat Delphi uitzonderingen onderbreekt. Dit is een geweldige functie als u wilt dat Delphi laat zien waar een uitzondering is opgetreden; het kan echter vervelend zijn als u uw eigen afhandeling van uitzonderingen test.

Weinig laatste woorden

Het idee van dit artikel is om u een snelle blik te geven op wat uitzonderingen zijn. Overweeg voor verdere discussie over het afhandelen van uitzonderingen Over het omgaan met uitzonderingen in Delphi Exception Handling, met behulp van een tool als Delphi Crash / Exception Handling met Bug Reporting en enkele van de volgende gerelateerde artikelen:

instagram story viewer