C# Exceptions deel II header image

C# Exceptions deel II

c#

In C# Exceptions hebben we gezien hoe we een programma gecontroleerd kunnen laten stuk lopen. Maar hier eindigd de reis niet. Nu we vantevoren al hebben vastgesteld waar het programma vast zou kunnen lopen, kunnen we deze fouten ook gelijk gaan rechtzetten.

Try catch

Voor dit process is de try catch bedacht. Hiermee can een stuk code worden uitgevoerd. Mocht er een exception worden gegooid in deze code, dan wordt deze fout ‘opgevangen’.  Het programma voert een alternatieve actie uit wanneer de fout wordt gevonden en gaat vervolgens verder alsof er niks aan de hand is. Dit levert de volgende code op.


try {

        // 1. Code van een programma

        throw new Exception(“Crash!”);

        // 2. Meer code

} catch (Exception e) {

        // 3. Alternatieve code

}

Hierbij zal eerst stap 1 worden uitgevoerd. Hierna wordt de exceptie gegooid (In een normaal programma wordt dit uiteraard alleen gedaan onder specifieke omstandigheden). Vervolgens wordt punt 3 uitgevoerd. Opmerkelijk in dit voorbeeld is dat zowel de code die fout loopt als punt 2 worden overgeslagen. De code bij punt 3 zal er vervolgens voor moeten zorgen dat het programma alsnog in goede banen wordt geleid. Alles wat na de ‘catch’ komt wordt vervolgens weer normaal uitgevoerd en de daadwerkelijke crasht is voorkomen.

Aangepaste Exceptions

Het is echter nog mogelijk om verder specificeren wat er fout gaat in het programma. Hiermee kunnen betere maatregelen getroffen worden bij het herstellen van deze fouten. Dit wordt gedaan doormiddel van een aangepaste versie van een Exception, bijvoorbeeld:


public class IncorrecteEmailException: Exception {

}

public class IncorrecteAdresException : Exception {

}

Dit zijn twee nieuw aangemaakte Exceptions voor in dit geval het controleren van ingevoerde gegevens. Vervolgens kan bij het opvangen van de Exceptions onderscheid gemaakt worden in het type Exception. Zo zou bijvoorbeeld voor de ‘IncorrecteEmailException’ een specifieke melding aan de gebruiker kunnen worden getoond over dat het e-mail adres incorrect is. Dit zou tot de volgende code leiden:


public IactionResult slaGebruikersGegevensOp(UserData gebruikersGegevens) 
{
        try {

                // controleer gegevens
                if ( incorrecteEmail( gebruikersGegevens ) ) {

                        throw new IncorrecteEmailException(“Email was onjuist ingevoerd”);

                }

                if ( incorrecteAdressGegevens( gebruikersGegevens ) ) {

                        throw new IncorrecteAdresException (“Adres was onjuist ingevoerd”);

                }

                // sla de gegevens op

        } catch (IncorrecteEmailException e) {

                // toon de gebruiker een foutmelding dat de opgegeven email niet correct is

        } catch (incorrecteAdressGegevens e)

                // toon de gebruiker een foutmelding het opgegeven adres incorrect is

        } catch (Exception e) {

                // ongespecificeerde fouten

                // geef een algemene waarschuwing dat iets niet goed ging

                // of laat het herstel hiervan over aan bovenliggende code

                throw;
        }
}

Aan het eind van dit stuk code wordt gekeken of er een Exception is die niet herkend wordt. Er kan hierbij worden gekozen om een algemene foutmelding te geven of om het afhandelen hiervan over te laten aan een hoger niveau.

Het uiteindelijke doel van dit systeem is het voortijd afhandelen en oplossen van fouten, of het op de hoogte stellen van een gebruiker over deze fouten.


Andere blogartikelen

De kracht van personalisatie in B2B Leadgeneratie
De kracht van personalisatie in B2B Leadgeneratie

03 November 2023

Hoe u uw B2B klanten kunt nurturen en uw verkoop kunt stimuleren
Hoe u uw B2B klanten kunt nurturen en uw verkoop kunt stimuleren

20 October 2023

Creëer synergie tussen B2B SEA en B2B SEO
Creëer synergie tussen B2B SEA en B2B SEO

11 October 2023

Open Nieuwsbrief Inschrijving Footer