ErrorException implementatie

Door Richard van Velzen, 15 jaar geleden, 2.269x bekeken

Crosspost van PHPFreakz.nl:

Ik houd zo onderhand niet meer van de standaardfouten die PHP geeft, die vang ik zelf liever af als exception.

Nu heeft PHP al een mooie ingebouwde ErrorException hiervoor, helaas moet je die wel zelf implementeren in je eigen systeem. Ik heb hier dus een simpele, doch effectieve schil voor gemaakt.

Uitleg staat in het script, vragen/opmerking/complimenten/hatemail mag je zoals gebruikelijk achterlaten als reactie. :)

Changelog:
14-10-2008: static calls die foutief waren veranderd naar objectcalls
16-10-2008: domme fout: $this gebruikt in init() -static-. Volgorde omgedraaid, waardoor nu $instance wordt gebruikt.

Gesponsorde koppelingen

PHP script bestanden

  1. errorexception-implementatie

 

Er zijn 6 reacties op 'Errorexception implementatie'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Ano Niem
Ano Niem
15 jaar geleden
 
0 +1 -0 -1
Sweet, dit is zeker iets dat ik wel kan toepassen!
Hendel Berg
Hendel Berg
15 jaar geleden
 
0 +1 -0 -1
Mooooi man!!! Was zelf met iets vergelijkbaars bezig voor een systeem. Maar dit slaat alles. Thanks.
Hendel Berg
Hendel Berg
15 jaar geleden
 
0 +1 -0 -1
Toch krijg ik het niet helemaal aan de praat zoals ik wil. Een fatal error vangt 'ie bij mij niet af. Ik heb de class zó aangeroepen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
Error_Handler::init()
   ->
setBitfield(E_ALL)
   ->
setSeverity(array(E_ERROR             =>  0,
                       E_WARNING           =>  0,
                       E_PARSE             =>  0,
                       E_NOTICE            =>  0,
                       E_CORE_ERROR        =>  0,
                       E_CORE_WARNING      =>  0,
                       E_COMPILE_ERROR     =>  0,
                       E_COMPILE_WARNING   =>  0,
                       E_USER_ERROR        =>  0,
                       E_USER_WARNING      =>  0,
                       E_USER_NOTICE       =>  0,
                       E_STRICT            =>  0,
                       E_RECOVERABLE_ERROR =>  0
                      ));
?>


Enig idee wat ik fout doe?
Richard van Velzen
Richard van Velzen
15 jaar geleden
 
0 +1 -0 -1
De error-levels die in de originele versie staan zijn de _enige_ die ook daadwerkelijk zijn af te vangen, anders had ik ze allemaal wel neergezet..

http://nl.php.net/manual/en/function.set-error-handler.php
Quote:
The following error types cannot be handled with a user defined function: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, and most of E_STRICT raised in the file where set_error_handler() is called.
Mark moes
mark moes
15 jaar geleden
 
0 +1 -0 -1
Eigenlijk ben ik als beginner hier ook al een tijdje mee aan het prutsen, maar het houd dus in dat je lang niet alle errors netjes kunt afvangen/melden/mailen/loggen of iets dergelijks... Klopt dat?

Natuurlijk weet ik ook wel, dat je script geen errors mag geven, welke dan ook. Maar ja, stel nou dat er toch een klein foutje in sluipt, dan wil je die error toch fatsoenlijk verwerken...

Heeft iemand hier nog tips voor?
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Mark moes
mark moes
15 jaar geleden
 
0 +1 -0 -1
Eigenlijk ben ik als beginner hier ook al een tijdje mee aan het prutsen, maar het houd dus in dat je lang niet alle errors netjes kunt afvangen/melden/mailen/loggen of iets dergelijks... Klopt dat?

Natuurlijk weet ik ook wel, dat je script geen errors mag geven, welke dan ook. Maar ja, stel nou dat er toch een klein foutje in sluipt, dan wil je die error toch fatsoenlijk verwerken...

Heeft iemand hier nog tips voor?

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. errorexception-implementatie

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.