login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Exceptions VS error array

Offline Codestar - 08/10/2007 21:31 (laatste wijziging 08/10/2007 21:32)
Avatar van CodestarNieuw lid In PHP boeken kom ik steeds maar weer Exceptions tegen. Throw exceptions dit, Throw exception dat.

Tot nu toe werk ik met een $this->error[] array. Die in een klasse keurig alle fouten verzameld. Vervolgens worden die naar de template geparsed.

Wat is het grote voordeel van Exceptions throwen en catching in vergelijking met een simpelere $this->error[] array. Die ten eerste veel gemakkelijker te bereiken is en ten tweede meerdere errors kan bevatten.

10 antwoorden

Gesponsorde links
Offline Stijn - 09/10/2007 08:43
Avatar van Stijn PHP expert Exceptions is een andere manier van error handling. Je gooit iets en je ziet de foutmeldig enkel wanneer de code met de gegooide Exception uitgevoerd wordt in een try{...} catch omgeving.

Persoonlijk is dit beter omdat je dan specifiek op de foutmelding concentreert en jij (of de eindgebruiker) moet dan met de foutmelding werken (op het scherm plaatsen bijvoorbeeld).

Zend Framework doet dit ook. Als er iets fouts gebeurt krijg je een onleesbare melding maar zet die code dan in en try...catch omgeving en je krijgt de verstaanbare foutmelding.

Het heeft zijn voordelen maar beter is het niet. Zoals ik al zei, het is een andere manier van werken.
Offline nemesiskoen - 09/10/2007 10:05
Avatar van nemesiskoen Gouden medaille

PHP expert
Citaat:
Persoonlijk is dit beter omdat je dan specifiek op de foutmelding concentreert en jij (of de eindgebruiker) moet dan met de foutmelding werken (op het scherm plaatsen bijvoorbeeld).

que?

Dit hangt puur af met wat je bezig bent. Een exceptie en een error is niet hetzelfde. Gebruik een exceptie bij een uitzondering (wrong user input) en een error bij een error, maar dat is eigenlijk het werk van php... toch?
Offline ikkedikke - 09/10/2007 17:27
Avatar van ikkedikke PHP expert een ander voordeel vind ik dat je door de mogelijkheid van tevoren heel specifiek aan te geven wat voor fout het is, je met weinig code heel accuraat kan handelen.
dit heel duidelijk specificeren kan met eigen klassen extend'en op Exception.
Offline Grayen - 09/10/2007 21:07
Avatar van Grayen PHP ver gevorderde Ik gebruik beide.

Exceptions, bij fouten in de code, waardoor het script niet fatsoenlijk kan draaien.

Errors array, bij waarschuwingen die bedoelt zijn voor de bezoeker. Bijvoorbeeld bij een upload script, waarbij als de gebruiker een bestand met een verkeerd type upload, dat hij dan een foutmelding krijgt.

Offline Stijn - 09/10/2007 21:30
Avatar van Stijn PHP expert Geef mij maar exceptions. Wanneer er iets niet correct is gooi ik het en ik vang het dan op als ik de code gebruik.
Offline Button - 09/10/2007 21:31 (laatste wijziging 09/10/2007 21:32)
Avatar van Button PHP ver gevorderde
vage schreef:
que?

Latijn gestudeerd men jongen? 

ikkedikke schreef:
dit heel duidelijk specificeren kan met eigen klassen extend'en op Exception.

Dit is idd een superhandigheidje, ik gebruik in een bepaalde applicatie bv. een de gewoone exception classe voor fouten die de user niet moet zien (bv. mysqlfouten, ... enz.)en fouten specifiek voor de user (geen naam ingevuld, enz.). Om het overzicht te bewaren.
Offline Abbas - 09/10/2007 22:38
Avatar van Abbas Gouden medaille

Crew .NET
Citaat:
vage schreef:que?
Latijn gestudeerd men jongen?
Hij bedoelde hiermee gewoon dat wat stijn schreef nogal onduidelijk geformuleerd was... 
Offline nemesiskoen - 10/10/2007 08:15 (laatste wijziging 10/10/2007 08:17)
Avatar van nemesiskoen Gouden medaille

PHP expert
Citaat:
Exceptions, bij fouten in de code, waardoor het script niet fatsoenlijk kan draaien.

Errors array, bij waarschuwingen die bedoelt zijn voor de bezoeker. Bijvoorbeeld bij een upload script, waarbij als de gebruiker een bestand met een verkeerd type upload, dat hij dan een foutmelding krijgt.


En dat is juist het omgekeerde van "de bedoeling". Niet dat alles nu gaat crashen maar exceptions zijn wel bedoeld voor fouten die komen door verkeerde gebruikersinput. Maarja, then again, fouten komen eigenlijk alleen maar voor bij verkeerde gebruikersinput, want je code "moet" fatsoenlijk draaien (wordt toch aangenomen).
Offline Grayen - 10/10/2007 09:15
Avatar van Grayen PHP ver gevorderde
Citaat:
want je code "moet" fatsoenlijk draaien (wordt toch aangenomen)

Uiteraard, maar daarom gebruik ik juist die exceptions, want wat nu als ik een foutje in mijn code heb gemaakt en ik niet duidelijk weet wat er fout is gegaan of als zelfs niet eens zie dat er iets fout is gegaan. Dan is het handig om een gedetaileerde foutmelding te krijgen.

Natuurlijk kun exceptions ook toepassen bij die error array, je kunt namelijk die array laten maken door een exception class.
Offline nemesiskoen - 10/10/2007 10:34
Avatar van nemesiskoen Gouden medaille

PHP expert
Dan kun je zelfs die array weglaten en:

  1. try {
  2. check_naam(); // throws exception
  3. check_pass();
  4. check_nog_iets();
  5.  
  6. // doe iets
  7. } catch(Exception $e) {
  8. // er is iets fout gegaan
  9. }
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.195s