Ik ben erg bezig met het proberen onder de knie te krijgen van de juiste manier (lees: een goede manier) voor het gebruik van exceptions. Nu zit ik een beetje met de vraag wanneer een exception nou goed te gebruiken is en wanneer het overbodig is. En dan heb ik het met name over exceptions die je zelf schrijft en throwed, dus niet zozeer een exception die je zou kunnen verwachten bij het inlezen van een resource oid.
Als een methode false returned om aan te geven dat de gevraagde actie mislukt is. Is het hier altijd beter om een exception te gebruiken, of is het opvangen van de return waarde en aan de hand van die waarde bepalen of er iets gedaan moet worden beter?
Stel dat ik een variabel uit een collectie wil halen. Is het dan beter om van te voren te controleren of hij er ook werkelijk in zit en aan de hand daarvan actie ondernemen, of is het beter om de waarde maar gewoon proberen op te halen en eventueel de exception afvangen als hij niet bestaat.
Is het verder beter om alle exceptions te proberen voorkomen met een controle, of is het ook een goede methode om het actief in te zetten als er ook maar iets gebeurd wat je met een controle zou kunnen afvangen? Of is het beter om er meer tussenin te gaan zitten, waar zou de grens liggen?
En hoe ver kan ik gaan in gespecialiseerde exceptions? Is het geschikt om voor ieder type fout een aparte exception te schrijven, of is het beter om voor een groep gerelateerde fouten (doordat ze bijvoorbeeld in dezelfde laag gethrowed worden) een exception te maken en aan de hand van constanten en een switch de juiste actie te ondernemen?
Wat is de strategie die jullie hier toepassen? Graag ook met een beetje onderbouwing, ik ben namelijk erg benieuwd naar de gedachte er achter.
Als een methode false returned om aan te geven dat de gevraagde actie mislukt is. Is het hier altijd beter om een exception te gebruiken, of is het opvangen van de return waarde en aan de hand van die waarde bepalen of er iets gedaan moet worden beter?
Stel dat ik een variabel uit een collectie wil halen. Is het dan beter om van te voren te controleren of hij er ook werkelijk in zit en aan de hand daarvan actie ondernemen, of is het beter om de waarde maar gewoon proberen op te halen en eventueel de exception afvangen als hij niet bestaat.
Is het verder beter om alle exceptions te proberen voorkomen met een controle, of is het ook een goede methode om het actief in te zetten als er ook maar iets gebeurd wat je met een controle zou kunnen afvangen? Of is het beter om er meer tussenin te gaan zitten, waar zou de grens liggen?
En hoe ver kan ik gaan in gespecialiseerde exceptions? Is het geschikt om voor ieder type fout een aparte exception te schrijven, of is het beter om voor een groep gerelateerde fouten (doordat ze bijvoorbeeld in dezelfde laag gethrowed worden) een exception te maken en aan de hand van constanten en een switch de juiste actie te ondernemen?
Wat is de strategie die jullie hier toepassen? Graag ook met een beetje onderbouwing, ik ben namelijk erg benieuwd naar de gedachte er achter.
[ Voor 4% gewijzigd door Michali op 15-12-2004 16:05 ]