Problème class "Exception"
bonsoir;
Je viens exposer mon problème qui est celui de la classe prédéfinie"Exception".
chaque fois que je veux executer une instance de cette classe le message suivant apparait:
"Fatal error: Call to undefined function getMessage() in C:\xampplite\htdocs\ss\es.php on line 23"
Il est important de rappeler que la version de PHP utilisé est la 5, sous XAMMPLITE.
Le meme problème c'est produit avec Wamp server.
Merci d'avance pour toutes aides.
Cidou.
Réponses apportées à cette discussion
Salut,
ce serait une bonne idée de montrer le code correspondant.
Je soupçonne bien quelque chose, mais sans voir le code, impossible d'être sûr.
Bonsoir;
Merci pour votre réponse; cependant je vous signale que c'est un simple code d'essai:
Je ne vois pas trop à part peut-être la concaténation et un détail de casse...
L'opérateur de concaténation est le point et non la virgule. Dans le cas d'un echo, ça fonctionne mais ce n'est pas habituel.
la classe Exception s'écrit avec un « E » et non un « e », ça a son importance si le système estsensible à lacasse et si on utilise pas la bonne version, la méthode ne sera pas trouvée parce que la classe ne le sera pas non plus.
Un détail sur dernier echo() dans le catch : on ne fait pas echo(objet->__toString()) : « __toString() » est une méthode « magique » qui va retourner ce qui a été défini dedans sous la forme d'une chaine de caractères. On écrira donc directement echo(objet), la méthode __toString sera alors automatiquement appelée... si elle a été définie bien entendu, sinon, ça retourera un message d'erreur.
Donc en fin de compte, le code revu et corrigé donnerait ceci :
<?php
$a = 100;
$b = 0;
try
{
if($b==0)
{
throw new exception("Division par 0",7);
}
else
{
echo "Résultat de : $a / $b = ",$a/$b;
}
}
catch(Exception $except)
{
echo "Message d'erreur : ". $except->getMessage() ."<hr />";
echo "Nom du fichier : ". $except>getFile() ."<hr />";
echo "Numéro de ligne : ". $except>getLine() ."<hr />";
echo "Code d'erreur : ". $except>getCode() ."<hr />";
echo "__toString : ". $except ."<hr />";
}
echo "FIN";
bonsoir;
Effectivement c'est un problème dû à la casse; j'ai remplacer "exception" par "Exception" ainsi que la variable $except par $e, et ça fonctionner.
Merci pour le conseil.
Cidou.