[php] exception handling goed?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • tombo_inc
  • Registratie: December 2004
  • Laatst online: 04-02-2022
beste mensen,

ik was net de exception handling van php5 me eigen aan het maken. ik ben nu bezig aan een groot project van mij en gebruik daar veel objecten en ingewikkelde structuren, waarbij goede error reporting geen overbodige luxe is. nu had ik net een structuur bedacht waarmee ik al mijn exceptions af kan handelen met slechts één try...catch blok. namelijk deze structuur:

code:
1
2
3
4
5
6
7
8
9
10
<?php
//=>index.php //

try{
//--includes
//--object instantiaties
//--starten van de code
} catch(exception $e) {
//hier alles afhandelen.
}

nu kan ik dus alles wat er aan errors komen opvangen en afhandelen.
maar nu vroeg ik me af of dit wel een goede oplossing is, of dat ik beter losse try...catch blokken kan gebruiken binnen mijn objecten en stukken code.

alvast bedankt

Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition


Acties:
  • 0 Henk 'm!

  • simon
  • Registratie: Maart 2002
  • Laatst online: 00:18
nu vang je in een keer alle errors af.. Ik denk dat je nu ook errors afvangt die je niet wil hebben. Je kan beter een echte handler maken die uitzoekt hoe de vork echt in de pudding steekt... ipv ranzig nu in een keer alle errors uit te poepen :P

|>


Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 12:54
Zo zou ik het niet gaan doen, het stoort de flow van je programma helemaal. Je moet nu in die catch alles afhandelen, uit zoeken wat waar fout ging etc. Maar was als er nou iets fout gaat terwijl je eigenlijk dan een alternatief wilt aanbieden? Dat gaat nu niet want na 1 fout wordt je in die catch gedwongen en is het programma beindigd, je kunt moeilijk terug gaan springen. Dan wordt het er niet overzichtelijker op.

Als je meer try-catch statements gebruikt kun je precies bepalen wat je wilt gaan doen als iets fout gaat, als je al iets wilt doen. Daarna kun je gezellig verder gaan.

Dit artikel geeft een aardig idee hoe ik het ook zou aanpakken.

Acties:
  • 0 Henk 'm!

  • tombo_inc
  • Registratie: December 2004
  • Laatst online: 04-02-2022
wat bedoel je dan met errors die ik niet wil hebben?
overal waar ik een error als output wil hebben throw ik een exception. andere errors onderdruk ik. zo maak ik een systeem met eigen errors die ik goed begrijp zodat ik niet eeuwen hoef te gaan zoeken.

ja ok daar zit wat in ja. je kan nu idd niet meer zo makkelijk verder gaan met je code als je een niet fatal exception hebt. en dat artikel heb ik net gelezen :p

[ Voor 25% gewijzigd door tombo_inc op 13-03-2005 20:05 ]

Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition


Acties:
  • 0 Henk 'm!

  • simon
  • Registratie: Maart 2002
  • Laatst online: 00:18
Je moet errors niet onderdrukken.. Je moet zorgen dat ze netjes afgehandelt worden. Als het om errors gaat kun je beter niet té lui zijn...

|>


Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 12:54
Je moet errors opvangen daar op dat punt waar het fout gaat. Dan kun iig wat gemakkelijk debuggen als er al wat fout gaat. Soms wil je niet alle error van het zelfde type op dezelfde manier afhandelen, misschien wil je de ene keer alleen een string op het scherm toveren maar op een ander punt moet er een mail verstuurd worden.

Nadat een error is afgehandeld wil je meestal weer verder gaan met de rest van je programma, als je alles in 1 try-catch druk gaat dat nogal moeilijk.

Acties:
  • 0 Henk 'm!

  • tombo_inc
  • Registratie: December 2004
  • Laatst online: 04-02-2022
ja daar zit zeker wat in ja. wat ik sowieso van plan was, is om een eigen functie te schrijven waarin ik verschillende error levels uit mekaar pluk en afhankelijk daarvan iets doe. en dan roep ik in ieder catch blok die functie aan.

edit:
wat ik dus volgens jullie beter kan doen is gewoon in zeg maar iedere function zo'n blok zetten en dan vanuit daar alles af werken

[ Voor 24% gewijzigd door tombo_inc op 13-03-2005 20:22 ]

Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition

Pagina: 1