Ik heb al een tijd een database class liggen en ook gebruikt maar nu ben ik pas serieus begonnen met foutmeldingen. Maar wat is nu een goede foutmelding?

Ik zelf denk dat je een gebruiker niet dood moet gooien met meldingen als: "Unknown column 'a.message' in 'field list'". De normale gebruiker zal er namelijk niks van snappen.

Maar wat is dan wel een mooie melding? Je zou natuurlijk een globale melding kunnen maken zoals "Er is een database fout opgetreden". Maar als een gebruiker jou een email stuurt dat hij op een bep. pagina die melding tegen komt weet je nog niet waar je moet zoeken.

Wat je natuurlijk kan doen is een foutnummer toevoegen aan de globale melding. Hierdoor kun je via een error log zien waar het precies fout ging.

Stel dat je voor de globale melding zou gaan. Wat doe je dan met je error handler? Ik heb nu bijv een class ErrorMessage.

$error = new ErrorMessage($title, $message, $code);
$error->show();

De titel en de message zouden dan constant het zelfde zijn. Dan zou het misschien mooier zijn om een SqlMessage class te schrijven die overerft van ErrorMessage.
Maar goed dan zou je voor elk type exception een nieuwe Message class nodig hebben terwijl uiteindelijk de ouput bijna exact 't zelfde is aangezien ze allemaal een titel, bericht en fout code hebben.

Wat is de beste foutmelding en wat is de beste manier om deze te genereren met zo min mogelijk dubbele code?
up!

Ik heb eigenlijk zelf al besloten dat ik voor de globale melding met error nr ga en dan komt er gewoon vaker dubbele tekst in mijn code te staan. Maar toch zou ik graag nog de mening van andere willen horen. Misschien dat er nog een betere oplossing is waar ik niet aan gedacht heb of zo.
Ik neem aan dat je in je database class Exceptions gebruikt.

Ik heb voor de database class een eigen databaseException geschreven (extends Exception), dan geef ik aan de constructor het volgende mee: foutmelding een foutcode en de query. Deze gegevens schrijf ik in een logfile, met de datum, regel nummer etc.

Dan kan ik er dus voor kiezen om de gebruiker enkel de foutcode + een algemene foutmelding te laten zien, als ik dan een mail krijgt van een gebruiker kan ik adhv de code nog opsporen waar het fout ging zonder de gebruiker de gehele foutmelding te laten zien.

Reageren