Ola peepz,

Een tijd geleden had ik een soort PropertyBag class gemaakt. Op aanraden van Wouter had ik daar een lock en unlock method in gemaakt. Nu heb ik het zo gemaakt dat er een foutmelding wordt getriggerd op het moment dat je de lock method aanroept, terwijl de data al (eerder) is gelockt. Ook wordt er een foutmelding getriggerd op het moment dat je de data probeert te unlocken, terwijl deze al ge-unlocked is.

Ik kom nu weer een vergelijkbare situatie tegen. In mijn error class wil ik een debug mode kunnen in- en uitschakelen. In principe (als ik consequent wil zijn) dan zou ik ook nu weer moeten controleren of de debug mode wel of niet is ingeschakeld. Dus stel de debug mode is al ingeschakeld en ik roep de "inschakelen" methode aan, dan zou er dus een error moeten worden getriggerd.

Maar ik zit me nu af te vragen of het gebruikelijk is om een error te triggeren als je een bepaalde "instelling" inschakelt, die reeds is ingeschakeld. Is dat gebruikelijk?

Nu is het dus zo:

debug mode inschakelen:
- controleer of debug mode reeds is ingeschakeld
- ja? trigger een error
- nee? schakel de debug mode in

debug mode uitschakelen:
- controleer of debug mode reeds is uitgeschakeld
- ja? trigger een error
- nee? schakel de debug mode uit

Als je de controles achterwege laat krijg je dit:

debug mode inschakelen:
- schakel de debug mode in

debug mode uitschakelen:
- schakel de debug mode uit

Wat is gebruikelijk in dit soort situaties?
Allereerst trigger errors in een OO omgeving, aiaiai!

Tweede, unlocken van data. Waarom zou je dat willen? Dan kun je het net zo goed helemaal niet locken, als je het toch op elk moment weer even kan unlocken. Gewoon dicht = dicht, net zoals op = op.

Dan had je ook nog een vraag gesteld :) Ik zou een notice loggen, maar geen error gooien.

Even gekeken naar Debug::enable() van Symfony en die stoppen gewoon de functie als hij al is ingeschakeld en meer niet: https://github.com/symfony/Debug/blob/master/Debug.php#L38-40
En ook CakePHP laat de functie stilletjes niks doen: https://github.com/cakephp/cakephp/blob/master/lib/Cake/Core/Configure.php#L69
Triggeren naar een aparte class... werkt prima, hehehe :)

Unlocken van data... zal in de praktijk niet vaak gebeuren inderdaad. Maar moch het in een uitzonderingssituatie een keer nodig zijn, dan kan het in ieder geval.

Hmmm, oké... geen error triggeren maar gewoon niks doen. Dat zou inderdaad ook kunnen.

De vraag die ik vooral heb is of het "fout" is als je iets inschakelt dat al is ingeschakeld. Feitelijk gezien is dat ongeveer hetzelfde dat je het licht aandoet, terwijl het al aan staat. Dat kan dus eigenlijk niet. Als je het zo bekijkt zou een foutmelding/notice dus op z'n plaats zijn.
>> Als je het zo bekijkt zou een foutmelding/notice dus op z'n plaats zijn.

Een foutmelding dus niet, het licht gaat niet opeens uit in je huis. Je krijgt alleen feedback dat het knopje al goed stond, een noticje dus.
Daar heb je zeker een punt. Je kunt ook zeggen "he idioot, jij probeert het licht aan te zetten maar het licht staat al aan. Je doet dus iets fout." Ik ben het helemaal met je eens dat de consequentie niet ernstig is, maar ik wil mezelf behoeden om stomme fouten te maken, en dan is het wel mooi om er een error van te maken. Maar goed, dat is persoonlijke keuze. Het ging me er met name om of ik wil of niet een of andere foutmelding moet triggeren. Beter dus van wel.

[size=xsmall]Toevoeging op 12/07/2013 00:47:56:[/size]

Over dat error vs. notice ga ik nog eens een nachtje slapen. Het is inderdaad de vraag of je de zaak moet laten klappen voor zo'n foutje. Wellicht maak ik er toch nog een notice van.

Reageren