[PHP exception] ca marche pas

Bonjour,

j'essaye de gérer les erreurs notamment de problèmes d'ouverture de fichiers distants avec php, avec des blocs try et catch, mais ça marche pas :(

Par dépit, j'ai collé les exemples repris du manuel php, et j'ai toujours le même pb : ça bloque à la première accolade { après le try...

Si qq'un a une idée, c'est volontiers.

Merci

Blo

code d'ex :

<?php
try {
    $error = 'Toujours lancer cette erreur';
    throw new Exception($error);

    // le code suivant une exception n'est pas exécuté.
    echo 'Jamais exécuté';
}
catch (Exception $e) {
    echo "Capture de l'exception : ",  $e->getMessage(), "\n";
}

// Continue l'exécution
echo 'Bonjour le Monde !';
?> 
Configuration: Windows XP
Firefox 1.5.0.11

8 réponses

  1. Si le try/catch ne fonctionne pas c'est certainnement que vous êtes en php4 !
    La gestion des exceptions n'a été introduite que depuis php5
    1. Salut,

      Le code fournit fonctionne parfaitement et affiche:

      "Capture de l'exception : Toujours lancer cette erreur Bonjour le Monde !"

      L'erreur est toujours declenche puisqu'elle est lance dans le bloc try.

      Dans ce petit exemple, une exception est lancee que si la variable $a est a 0.

      <?php
      function hello()
      {
      $a = 0;

      if( $a == 1 )
      {
      echo "a is true";
      return true;
      }
      else
      {
      throw new Exception( "a is false" );
      }
      }

      try
      {
      hello();
      }
      catch( Exception $e )
      {
      echo "caught exception: " . $e->getMessage();
      }

      ?>

      Gaetan Mathey
      http://ww38.vmeste.fr/index.php?Seulement-lui_la-minute-geek&subid1=20200206-0403-50ca-b23a-796e1b647bba
      1. salut.

        Ca fait pareil moi pour mon code, ça ne fonctionne pas chez free.

        Je pense que c'est une problème de version php ou un manquede librairie,

        Je suis entrain de faire une recherche.
        1. J'ai le même problème,

          est ce que quelqu'un a une solution ??
          C'est bloquant quand on veut réutiliser des classes.
          1. Bonjour,

            Les exceptions ne fonctionnent pas correctement en PHP 5.2 si E-ACCELERATOR est activé.

            1) Veuilez essayer en le désactivant.

            2) Vous pouvez utiliser xCache ou APC à la place de EACCELERATOR.

            b
            1. et depuis ???
              ça a avancé ???

              car j'ai aujourd'hui (14 juin 2011) ce pb chez free ! et en local !!! comme quoi ça n'a rien à voir avec free !!!