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

  • Waarom developers het zo leuk vinden bij ons

    Geschreven door: op woensdag 13 november 2019

    Bij ons op kantoor werkt een team van betrokken specialisten, waaronder 4 backend developers en 4 UX developers. Zij zorgen voor een belangrijk fundament binnen dit bedrijf. Een goede reden om te zorg ...

    Bekijk het artikel »
  • Beachvolleyballen voor het goede doel!

    Geschreven door: op vrijdag 25 oktober 2019

    Afgelopen vrijdag 11 oktober  hebben diverse betrokken specialisten uit ons team de handen ineen geslagen met een van onze opdrachtgevers. Samen met De Monchy International B.V. hebben we meegeda ...

    Bekijk het artikel »
  • Het gebruik van een Photoslider

    Geschreven door: op maandag 7 oktober 2019

    Ze zijn er in alle soorten en maten en staan meestal bovenaan een websitepagina. Dan heb ik het natuurlijk over photosliders. Zo bent u vast bekend met de traditionele foto die langzaam vervaagd en wa ...

    Bekijk het artikel »
Bel 072 5345 888
Onze Middelen en Technologieën
microsoft silver partner
Adobe partner
fd-gazellen-2018.jpg
Google analytics
partners-logo.jpg
Op de hoogte blijven?

Meld u aan voor de gratis nieuwsbrief om op de hoogte te blijven van onze activiteiten