2017-09-06 3 views
0

Je veux savoir ce qui est la performance qui sera ajouté à mon code si j'utiliser la méthode try catch au lieu de construire un functions, pour être plus clairement ici une comparaison:Quelle est la différence essayer d'attraper et de construire une fonction?

méthode Fonction:

<?php 
 
     $num_1 = 5; 
 
     $num_2 = 12; 
 
     compare($num_1, $num_2); 
 
    
 

 
function compare($var1, $var2){ 
 
    if ($var2 > $var1) echo "That's Right 12 is bigger than 5"; 
 
    if ($var2 < $var1) echo "That's Wrong 12 is Not less than 5"; 
 
    exit(); 
 
    } 
 
    
 
    ?>

Essayez Catch méthode:

<?php 
 
     $num_1 = 5; 
 
     $num_2 = 12; 
 
     
 
    try{ 
 
    if ($var2 > $var1) throw new Exception("That's Right 12 is bigger than 5"); 
 
    if ($var2 < $var1) throw new Exception("That's Wrong 12 is Not less than 5"); 
 
    } 
 
      
 
    catch (Exception $e) { 
 
     echo "$e->getMessage()"; 
 
     exit(); 
 
    } 
 
    ?>

dans ces deux méthode que je vais obtenir le même résultat, alors quel est l'avantage d'utiliser try catch et quand je décide je dois l'utiliser.

Répondre

1

Vous utilisez try...catch pour renvoyer des valeurs? Ce n'est pas fait pour ça. Essayez ... catch est censé attraper des exceptions, comme une division nulle, écrire un fichier en lecture seule, des choses comme ça, pas pour retourner des valeurs.

Pour utiliser try ... catch sur une fonction, utilisez quelque chose comme ceci:

<?php 
function divide($first, $second) { 
    try { 
     $result = $first/$second; 
    } 
    catch(Exception e) { 
     die("Error. Division by zero"); 
    } 
    return $result; 
} 
?> 
+0

S'il vous plaît pourriez-vous dans plus de détails et de soutenir la réponse avec des exemples de code. –

+0

Votre premier code a du sens, ça va. Le deuxième code fonctionne, mais n'utilisez pas try ... catch pour cela. J'ai ajouté un exemple sur ma question. – ThoriumBR

+1

@mohamedmaher Il serait plus logique de simplement lire un tutoriel sur les exceptions et essayer ... catch. Ils ont un but très précis. – Carcigenicate