Comment appliquer un bloc d'essai en php

Comment appliquer un bloc d'essai en php
La gestion des exceptions est une caractéristique très importante de toute programmation orientée objet. Lorsque une erreur logique ou système arrive après avoir exécuté un code, elle est appelée exception et que la technique par laquelle le codeur peut gérer correctement les erreurs est appelée exception. Il est utilisé pour éviter les résultats inattendus des utilisateurs finaux, améliorer la sécurité de l'application et gérer efficacement les erreurs prédéfinies. Cette fonctionnalité est prise en charge par PHP à partir de la version 5. Essayer et attraper Le bloc est utilisé pour gérer les exceptions dans la programmation orientée objet. Essayer le bloc est utilisé pour lancer l'exception si une erreur se produit et attraper ou enfin le bloc est utilisé pour gérer l'exception en php. Ce tutoriel vous aidera à apprendre l'utilisation de la gestion des exceptions de la programmation orientée objet en utilisant PHP.

Essayer Block

PHP a une classe de base nommée Exception et des exceptions sont jetées à partir de essayer se bloquer Exception ou sous-classe de Exception classe.

Syntaxe:

essayer

//Code principal

Bloc de capture

Attraper le bloc apparaît après essayer bloc. PHP prend en charge plusieurs attraper blocs pour gérer plusieurs exceptions. Quand une exception se lance, PHP essaie de correspondre au premier bloc de capture, alors le deuxième bloc de capture s'il ne correspond pas au premier, et ainsi de suite.

Syntaxe:

essayer

//Code principal

Catch (exception $ e)

// Code de gestion des erreurs

Enfin bloquer

Enfin, le bloc peut être utilisé après ou au lieu du bloc de capture en PHP et ce bloc s'exécute lorsque les sorties de blocs d'essayer. Tout code normal ou de terminaison peut être ajouté à ce bloc après avoir exécuté le code du bloc d'essai.

Syntaxe:

essayer

//Code principal

Catch (exception $ e)

// Code de gestion des erreurs

enfin

// code normal

Exemple-1: Utilisation d'un bloc de coups d'essai pour une erreur simple

L'exemple suivant montre l'utilisation d'un bloc d'essai pour une seule exception. Créer un fichier PHP avec le script suivant. La valeur du paramètre de requête 'nobs'a été lu et vérifié dans le bloc d'essai. Si la valeur est inférieure à 10, alors le bloc d'essai lancera une exception dans le bloc de capture. Sinon, la valeur sera imprimée. Catch Block attrapera l'exception et imprimera le message envoyé à partir du bloc d'essai. Si aucun paramètre de requête ne passe, alors la valeur par défaut sera de 100.

// tester le nombre est de 10 ou plus
essayer

if (isset ($ _ get ['num']))
// Lire la valeur de l'URL
$ n = $ _get ['num'];
autre
// définir la valeur par défaut
$ n = 100;
if ($ n <10)

// Si l'exception lance, le bloc Catch affiche le message d'erreur suivant
Jetez une nouvelle exception ("

Le nombre doit être de 10 ou plus.

");

autre

// exécute cette ligne si aucune erreur n'apparaît.
écho "

Le nombre est $ n

"


// attrape l'exception de Try Block
Catch (exception $ e)

// Imprime le message d'erreur passé du bloc d'essai
echo $ e-> getMessage ();

?>

Sortir:

Exécutez le script sans aucun paramètre de requête.

http: // localhost / phpcode / trycatch1.php

Exécutez le script avec une valeur de paramètre de requête inférieure à 10.

http: // localhost / phpcode / trycatch1.php?num = 5

Exécutez le script avec une valeur de paramètre de requête supérieure à 10.

http: // localhost / phpcode / trycatch1.php?num = 15

Exemple-2: Gestion de plusieurs erreurs en héritant de la classe d'exception

Créez un fichier PHP avec le script suivant pour gérer les multiples exceptions en utilisant plusieurs blocs de capture. Une sous-classe nommée 'MyException'a été créé en étendant la classe de base'Exception'Pour gérer le'Erreur d'URL non valide'. La classe de base Exception a été utilisé pour la manipulation 'Erreur d'URL vide'.

// Déclarer une sous-classe MyException en étendant la classe d'exception
classe MyException étend l'exception
// Définissez le message d'erreur dans le constructeur
Fonction publique __construct ($ message = null, $ code = 0)
$ this-> message = $ message;

// Affiche le message d'erreur
fonction publique display_error ()

écho '

'.$ this-> message.'n'est pas une adresse URL valide

';;


essayer

// Définissez l'adresse URL à l'aide du paramètre de requête ou de la valeur par défaut
$ url = isset ($ _ get ['url'])?$ _Get ['url']: "https: // linuxhint.com ";
// Vérifiez que l'adresse URL est vide ou non
if ($ url == "")
// Si l'adresse d'URL est vide, le message d'erreur suivant lancera
Jetez une nouvelle exception ("

L'adresse URL est vide.

");

// Vérifiez que les adresses URL sont valides ou non valides
Elseif (!filter_var ($ url, filter_validate_url))
// Si l'adresse URL n'est pas valide, une exception va lancer avec une adresse URL non valide
lancer une nouvelle MyException ($ url);

autre

// Imprimez un message pour une adresse URL valide
écho "

".$ url."Est une adresse URL valide

"


// gérer une exception d'URL non valide
catch (myException $ e)
// appelle la méthode de la sous-classe pour imprimer le message d'erreur
echo $ e-> display_error ();

// Gérer l'exception d'URL vide
Catch (exception $ e)

// Imprimer le message d'erreur pour l'adresse d'URL vide
echo $ e-> getMessage ();

?>

Sortir:

Exécutez le script sans aucun paramètre de requête.

http: // localhost / phpcode / trycatch2.php

Exécutez le script avec un paramètre de requête nommé URL sans aucune valeur.

http: // localhost / phpcode / trycatch2.php?url =

Exécutez le script avec un paramètre de requête nommé URL avec une valeur d'URL non valide.

http: // localhost / phpcode / trycatch2.php?url = google

Exécutez le script avec un paramètre de requête nommé URL avec une valeur URL valide.

http: // localhost / phpcode / trycatch2.php?url = http: // google.com
Image

Exemple-3: Gestion de l'erreur de fichier en utilisant Try, Catch et enfin bloquer

Créez un fichier PHP avec le script suivant pour connaître l'utilisation d'essayer, de prendre et enfin bloquer. Le script essaiera d'ouvrir le test du fichier '.txt 'and Try Block lancera une exception si le fichier n'existe pas dans l'emplacement actuel ou n'est pas en mesure d'ouvrir. Le bloc de capture imprimera le message d'erreur transféré à partir du bloc d'essai. Le code du bloc final fermera le gestionnaire de fichiers après avoir exécuté le bloc d'essai. Try Block imprimera le contenu du fichier si aucune erreur n'apparaît.

error_reporting (0);
essayer

// Essayez d'ouvrir un fichier pour la lecture
$ file_handler = fopen ("Test.txt "," r ");
si(!$ file_handler)

// Jetez l'exception si le fichier n'est pas en mesure d'ouvrir
Jetez une nouvelle exception ("

Impossible d'ouvrir le fichier.

");

autre

// imprime le centimètre du fichier
alors que(!feof ($ file_handler))

echo fgets ($ file_handler) . "
"

fclose ($ file_handler);


attraper (exception $ e)
// Imprime le message d'erreur pour l'ouverture d'erreur de fichier Exception
echo $ e-> getMessage ();

enfin

// Message de terminaison d'impression
Echo "Programme terminé."

?>

Sortir:

Exécutez le script.

http: // localhost / phpcode / trycatch3.php

Exemple-4: Utilisation du bloc de capture d'essai imbriqué

Créez un fichier PHP avec le script suivant pour connaître la façon d'utiliser le bloc d'essai imbriqué. Le script vérifiera la valeur tirée d'une URL est un nombre ou non dans le premier bloc d'essai et le nombre de prises est supérieur à 100 ou non sera vérifié dans le deuxième bloc d'essai.

if (isset ($ _ get ['n']))

// le premier bloc d'essai
essayer
$ numéro = $ _get ['n'];
if (is_numeric (numéro $))

// le deuxième bloc d'essai
essayer
if ($ nombre> = 100)
// imprime le message de réussite
écho "Le nombre est valide."

autre
Jetez une nouvelle exception ('le nombre n'est pas valide.');


attraper (exception $ e)
// imprime la deuxième erreur
echo $ e-> getMessage ();


autre

Jetez une nouvelle exception («la valeur n'est pas un nombre.');


attraper (exception $ e)
// Imprime l'erreur FIRT
echo $ e-> getMessage () . "
"


autre
Echo "Aucun nombre n'a donné."
?>

Sortir:

Exécutez le script sans aucun paramètre de requête.

http: // localhost / phpcode / trycatch4.php

Exécutez le script avec la valeur du paramètre de requête inférieur à 100.

http: // localhost / phpcode / trycatch4.php?n = 78

Exécutez le script avec la valeur du paramètre de requête supérieure à 100.

http: // localhost / phpcode / trycatch4.php?n = 112

Exemple-5: Utilisation du bloc d'essai avec la fonction

Créez un fichier PHP avec le script suivant pour connaître l'utilisation du bloc d'essai avec la fonction. Le script prendra deux valeurs numériques à partir des paramètres de requête URL et le bloc de couple d'essai appellera une fonction qui lèvera une exception si le «Division par zéro" Une erreur s'est produite.

// définir la fonction pour calculer la division
Division des fonctions ($ a, $ b)
$ result = $ a / $ b;
si(!$ résultat)
// Jetez une exception pour le résultat non valide
lancer une nouvelle exception ('Division par zéro.');
autre
écho "

Le résultat de $ a / $ b = $ résultat

"

if (isset ($ _ get ['n1']) && isset ($ _ get ['n2']))

essayer
$ nombre1 = $ _get ['n1'];
$ nombre2 = $ _get ['n2'];
// Fonction d'appel qui vérifiera l'erreur
Division ($ Number1, $ Number2);

Catch (DivisionByzeroError $ e)
// imprime le message d'erreur
écho '

Erreur: ', $ e-> getMessage (), "

"


autre
Echo "Un ou plusieurs chiffres n'ont pas été fournis."
?>

Sortir:

Exécutez le script sans aucun paramètre de requête.

http: // localhost / phpcode / trycatch5.php

Exécutez le script avec les valeurs des paramètres de requête, 10 et 5.

http: // localhost / phpcode / trycatch5.php?n1 = 10 & n2 = 5

Exécutez le script avec les valeurs des paramètres de requête, 10 & 0.

http: // localhost / phpcode / trycatch5.php?n1 = 10 & n2 = 0

Exemple-6: Afficher le message d'erreur en détail pour une exception personnalisée

Créez un fichier PHP avec le script suivant pour afficher le message d'erreur en détail en utilisant différentes méthodes de la classe d'exception. Le script prendra le nom de fichier à partir du paramètre URL et vérifiera le fichier existant ou non en utilisant un bloc d'essai.

if (isset ($ _ get ['fn']))

essayer
$ filename = $ _get ['fn'];
si(!file_exists ($ nom de fichier)))

Jetez une nouvelle exception ('Le fichier n'existe pas.');


attraper (exception $ e)
// Afficher le message d'erreur en détail
écho '
Nom de fichier: '.$ e-> getFile ().
'
Erreur s'est produite sur le numéro de ligne: '.$ e-> getline ().
'
Message d'erreur: '.$ e-> getMessage ();

enfin
écho "
Vérifiez un autre fichier."


autre
Echo "Le nom de fichier n'a pas donné."
?>

Sortir:

Exécutez le script sans aucun paramètre de requête.

http: // localhost / phpcode / trycatch6.php

Exécutez le script avec le paramètre de requête qui contient le nom de fichier inexistant.

http: // localhost / phpcode / trycatch6.php?fn = texte.SMS

Exécutez le script avec le paramètre de requête qui contient le nom de fichier existant.

http: // localhost / phpcode / trycatch6.php?fn = trycatch5.php

Conclusion

Les utilisations de base du bloc d'essai ont été expliquées dans ce tutoriel en utilisant des scripts PHP très simples. J'espère que le concept de gestion des exceptions en PHP sera effacé après avoir pratiqué correctement les exemples de ce tutoriel.