set_error_handler
smoos - 28/02/2006 22:11
PHP gevorderde
Hier op SiMa staan tig voorbeelden van set_error_handler. Ik heb wat geprobeerd:
(
<?php
set_error_handler("errorhandler");
function errorhandler ($nummer , $bericht, $bestand, $regel)
{
echo "foutje!!";
}
require ( "connection.inc.php" );
// Hieronder wat fouten:
mysql_query("SELECT * FROMM confieg WHWFERE id = 1");
echo "hoi";
echo "hoi"
echo "hoi";
?>
<?php
function errorhandler ( $nummer , $bericht , $bestand , $regel )
{
}
require ( "connection.inc.php" ) ;
// Hieronder wat fouten:
?>
Maar ik krijg bij een fout niet "foutje!!"
maar ik krijg dit:
Citaat:
Parse error: syntax error, unexpected T_ECHO, expecting ',' or ';' in C:hostxampphtdocssitegsincludetest.php on line 18
wat doe ik nu fout?
9 antwoorden
Gesponsorde links
webstab - 28/02/2006 22:16
PHP ver gevorderde
17e regel ; vergeten
b4nkr0bz0r - 28/02/2006 22:27
PHP gevorderde
webstab, hij wil dat hij zijn eigen errorhandler kan gebruiken.
set_error_handler("errorhandler"); zet dit is onderaan, mischien dat dat helpt!
smoos - 28/02/2006 22:29 (laatste wijziging 28/02/2006 22:30)
PHP gevorderde
@ webstab
dat is juist expres
ook:
Citaat:
FROMM confieg WHWFERE
is fout.
@ b4nkr0bz0r
oke even proberen. (volgens mij maakt dat niet uit btw )
Edit:
Het helpt niet...
b4nkr0bz0r - 28/02/2006 22:37
PHP gevorderde
dom van me, nu hoop ik het te weten.
bij jouw functie heeft $nummer een cijfer, daarme kan je de error vergelijken, dit kan je dus in een if-lus of een switch-case statement verwerken maar ik denk dat dit ook kan:
set_error_handler('errorhandler', E_ALL);
smoos - 28/02/2006 22:43
PHP gevorderde
ik heb het geprobeert.
ik heb nu dit:
<?php
error_reporting( E_ALL );
set_error_handler('errorhandler', E_ALL);
function errorhandler ($nummer , $bericht, $bestand, $regel)
{
echo "foutje!!";
}
require ( "connection.inc.php" );
// Hieronder wat fouten:
mysql_query("SELECT * FROMM confieg WHWFERE id = 1");
echo "hoi";
echo "hoi"
echo "hoi";
set_error_handler('errorhandler', E_ALL);
?>
<?php
function errorhandler ( $nummer , $bericht , $bestand , $regel )
{
}
require ( "connection.inc.php" ) ;
// Hieronder wat fouten:
?>
error:
Citaat:
Parse error: syntax error, unexpected T_ECHO, expecting ',' or ';' in C:hostxampphtdocssitegsincludetest.php on line 19
lemoinet - 28/02/2006 23:03
PHP gevorderde
; vergeten op regel 18:\
b4nkr0bz0r - 28/02/2006 23:07
PHP gevorderde
lemoinet pannekoek, dat moet ook.
maar dit is toch logisch als je error_reporting op E_ALL zet ? die moet juist weg want je wil je eigen error-reporter...
smoos - 28/02/2006 23:08 (laatste wijziging 28/02/2006 23:09)
PHP gevorderde
@ lemoinet
Je bent de 2e.
Lees je replies alsjeblieft voor geval dat je een dubbel antwoord geeft.
vanaf de regel:
// Hieronder wat fouten:
staan 2 fouten
1 in de mysql_query();
en 1 in de middelste echo
dit is om te kijken of die error handler het doet. wat dus niet het geval is.
@ b4nkr0bz0r
Als ik die error_reporting() weghaal of niet. Bij bijde werkt het niet :S
Richard - 01/03/2006 08:17
Crew algemeen
@iedereen behalve 2: die ; is nodig, nu kan hij het BESTAND niet parsen, de error handler kan dus ook niet geinitialiseerd worden.
lees ook: Citaat:
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.
duidelijker? die ; moet er gewoon bij. alleen eigen fouten en sommige andere fouten kunnen met de error handler worden gedaan.
Gesponsorde links
Dit onderwerp is gesloten .