Ik heb me de laatste tijd veel literatuur gelezen over Exception handling. Onder andere ook dit topic:
[rml][ alg] Exceptions, wanneer te gebruiken?[/rml]
Een aantal voordelen van exceptions ten opzichte van return values zijn mij bekend:
- Return values zijn makkelijker te negeren en Exceptions niet waardoor je gedwongen wordt om fouten af te handelen.
- Na een exceptie wordt geen code meer uitgevoerd. Als een database connectie fout gaat zullen er daarna nooit meer queries in de Class worden uitgevoerd.
- De applicatie is eenvoudiger te herstellen na een exceptie omdat de exceptie op de plaats van de aanroeper afgehandeld kan worden.
Nadelen Exceptions
- Het vaak throwen van Exceptions kan ongunstig zijn voor de performance van je applicatie
Nu zit ik met het volgende vraagstuk:
Ik heb Class gemaakt die wordt gebruikt in een ASP.NET webapplicatie. Deze Class kan aan de hand van een ingevoerde postcode de dichtsbijzijnde winkels vinden. In deze Class werkte ik met return values om verschillende situaties af te kunnen vangen:
Nu wil ik deze Class gaan herschrijven met Exceptions en lijkt het me logisch om een Exception te throwen bij een Database error.
Over de InvalidPostalCode en PostalCodeNonExistent zit ik in dubio
Ik zou voor InvalidPostalCode een PostalCodeFormatException throwen. Dit betekent dat de ingevoerde postcode geen geldig formaat heeft.
PostalCodeNonExistent wordt teruggegeven indien de gebruiker een postcode invoert die wel een geldig formaat heeft, maar die niet bestaat (bijv. indien het een postbus is). Hiervoor zou ik een PostalCodeNonExistent exception kunnen throwen.
Exceptions zijn voor uitzonderlijke situaties af te vangen, maar deze fouten kunnen regelmatig optreden wat dus de performance zou kunnen schaden. Aan de andere kant wil ik ook afdwingen dat de aanroeper deze fouten afhandelt en dit kun je alleen afdwingen met Exceptions.
Ik ben benieuwd hoe jullie tegen dit vraagstuk aankijken
[rml][ alg] Exceptions, wanneer te gebruiken?[/rml]
Een aantal voordelen van exceptions ten opzichte van return values zijn mij bekend:
- Return values zijn makkelijker te negeren en Exceptions niet waardoor je gedwongen wordt om fouten af te handelen.
- Na een exceptie wordt geen code meer uitgevoerd. Als een database connectie fout gaat zullen er daarna nooit meer queries in de Class worden uitgevoerd.
- De applicatie is eenvoudiger te herstellen na een exceptie omdat de exceptie op de plaats van de aanroeper afgehandeld kan worden.
Nadelen Exceptions
- Het vaak throwen van Exceptions kan ongunstig zijn voor de performance van je applicatie
Nu zit ik met het volgende vraagstuk:
Ik heb Class gemaakt die wordt gebruikt in een ASP.NET webapplicatie. Deze Class kan aan de hand van een ingevoerde postcode de dichtsbijzijnde winkels vinden. In deze Class werkte ik met return values om verschillende situaties af te kunnen vangen:
C#:
1
2
3
4
5
6
| public enum SearchResult { InvalidPostalCode = 2, // Postcode formaat klopt niet PostalCodeNonExistent = 3, // Postcode bestaat niet DatabaseError = 4 // Database fout opgetreden } |
Nu wil ik deze Class gaan herschrijven met Exceptions en lijkt het me logisch om een Exception te throwen bij een Database error.
Over de InvalidPostalCode en PostalCodeNonExistent zit ik in dubio
Ik zou voor InvalidPostalCode een PostalCodeFormatException throwen. Dit betekent dat de ingevoerde postcode geen geldig formaat heeft.
PostalCodeNonExistent wordt teruggegeven indien de gebruiker een postcode invoert die wel een geldig formaat heeft, maar die niet bestaat (bijv. indien het een postbus is). Hiervoor zou ik een PostalCodeNonExistent exception kunnen throwen.
Exceptions zijn voor uitzonderlijke situaties af te vangen, maar deze fouten kunnen regelmatig optreden wat dus de performance zou kunnen schaden. Aan de andere kant wil ik ook afdwingen dat de aanroeper deze fouten afhandelt en dit kun je alleen afdwingen met Exceptions.
Ik ben benieuwd hoe jullie tegen dit vraagstuk aankijken
It’s nice to be important but it’s more important to be nice