Diferencia entre las declaraciones try-catch e if-else en PHP

Try y catch se usan en PHP para manejar excepciones como otros lenguajes como C++, Java, etc. Una excepción es un resultado inesperado o un estado inesperado de un programa que puede ser manejado por el propio programa . Para manejar este tipo de resultados inesperados en PHP, se utilizan try y catch . Para obtener más detalles, visite Manejo de excepciones en PHP .

De manera similar, PHP también ejecuta declaraciones condicionales usando if y else para manejar escenarios de toma de decisiones. Para obtener más detalles, visite PHP | Toma de decisiones

Diferencias entre ‘try-catch’ y ‘if-else’ en PHP:

¿Qué son ‘si’ y ‘si no’

  • if: Verifica si alguna condición es “verdadera” o no, si es verdadera entonces ejecuta el código dentro del bloque if .
  • else: si la condición es «falsa», lo cual es verificado por el bloque if , entonces el bloque else ejecuta el otro código dentro de él.
if(condition)
{......}
else
{......} 

o

if(condition)
{......}
else if(condition)
{......}
else
{......}

¿Qué son ‘intentar’ y ‘atrapar’

  • try: It is a section where a block of code is defined for tested whether the code generates an unexpected result while executing.
  • catch: Es una sección donde se define otro bloque de código, el cual se ejecuta si se genera algún resultado inesperado en el bloque try. En realidad, este bloque de código maneja las excepciones. 
     
try
{...condition...;
 ...condition..;
 .....;
 .....;
 .....;
}
catch (Exception)
{...handling exception...;}

Manejo de errores: principalmente el bloque if-else se usa para manejar errores mediante la verificación de condiciones. if-else detecta errores como una declaración condicional. En muchos casos, hay muchos casos de esquina que deben verificarse durante una ejecución, pero «if-else» solo puede manejar las condiciones definidas. En if-else , las condiciones se generan manualmente en función de la tarea. 

php

<?php
 
$g = "GeeksforGeeks";
 
// Checks for a condition if
// 'g'is null or not
if ($g != "") {
    echo $g;
}
 
else {
    echo "This is not the string";
}
?>

Producción: 

GeeksforGeeks

En caso de bloque try-catch , verificará los errores o excepciones generados por el sistema durante un proceso de ejecución o una tarea. Estos errores o excepciones no se generan manualmente. try-catch maneja las excepciones que son fácilmente legibles.

php

<?php
 
// Exception handling function
function tryCatchException($b, $var) {
     
    try {
        echo "\nDivision is ", $b/$var;
        throw new Exception('denominator is 0');
        // If 'var' is zero then exception
        // is thrown
    }
    // Catch block will be executed if
    // any Exception has been thrown
    // by try block
    catch(Exception $e)    {
        echo "\nException: ", $e->getMessage();
        // Print the Message passed
        // by the thrown statement
    }
}
 
// Exception will happened
tryCatchException(6, 0);
 
?>

Producción: 
 

Runtime Errors : 
PHP Warning:  Division by zero in 
/home/1027ff9c161eb6503f545005908318fc.php on line 8
Division is INF
Exception: denominator is 0 

Use un bloque para manejar errores o excepciones: en el caso de if-else , tenemos un bloque else correspondiente a un bloque if , por lo que tenemos que definir cada bloque if con un bloque else para manejar condiciones «falsas». Además, es posible que no haya ninguna declaración else después de if .

php

<?php
 
function rngeLaptop($a) {
 
    // Each 'if' with one 'else'
    if ($a == "Gaming") {
        echo "Range stated from 50000rs\n";
    }
      
    else if($a == "Education") {
        echo "Range stated from 25000rs\n";
    }
  
    else if($a == "Graphics works") {
        echo "Range stated from 55000rs\n";
    }
      
    else if($a == "Entertainment") {
        echo "Range stated from 18000rs\n";
    }
    else {
        echo "Not listed\n";
    }
}
 
rngeLaptop("Gaming");
rngeLaptop("Education");
rngeLaptop("Movie"); // Not listed
rngeLaptop("Entertainment");
rngeLaptop("Graphics works");
  
?>

Producción: 

Range stated from 50000rs
Range stated from 25000rs
Not listed
Range stated from 18000rs
Range stated from 55000rs

En el caso de try-catch , no tenemos que definir cada try con un catch . Puede haber múltiples definiciones de excepciones dentro de un intento y para capturar las excepciones lanzadas por el bloque de prueba , puede haber un bloque de captura .

php

<?php
  
// Exception handling function
function tryCatchException($b, $var) {
    try {
         
        // Checking 2 condition and throwing
        // all exceptions in one catch block
        if($var == 0) {
            throw new Exception('denominator is 0');
        }
        if($var < 0) {
            throw new Exception('denominator is a negative');
        }
        echo "\nDivision is ", $b/$var;
    }
          
    // Catch block will be executed if any
    // Exception has been thrown by try block
    catch(Exception $e) {
             
        // Print the Message passed by
        // the thrown statement  
        echo "\nException: ", $e->getMessage();
    }
}
  
// Exception will happened
tryCatchException(6, -3);
tryCatchException(12, 0);
tryCatchException(15, 3);
  
?>

Producción: 

Exception: denominator is a string
Exception: denominator is 0
Division is 5 

Breve discusión sobre las diferencias de ‘try-catch’ y ‘if-else’ en PHP: 

si-más trata de atraparlo
Comprueba si cualquier condición es verdadera o no, si es verdadera, entonces ejecuta el código dentro del bloque if; de lo contrario, ejecuta el bloque else. ‘intentar’ es una sección donde se define un código para probar si el código genera un resultado inesperado durante la ejecución, si se encuentra algún resultado inesperado, se ejecuta el bloque catch para manejar esa situación.
‘if-else’ se usa para manejar diferentes condiciones usando la verificación de condiciones. En caso de ‘try-catch’, el sistema verificará los errores o excepciones generados por el sistema durante la ejecución de un proceso o una tarea.
Las condiciones se generan manualmente en ‘if-else’. según la tarea. ‘try-catch’ maneja errores generados por el sistema como, si una array está fuera de límite, dividir por cero, etc.
En ‘if-else’ se mezclan las condiciones y los códigos dentro de los bloques, de modo que se vuelve ilegible si hay muchos bloques ‘if-else’. En ‘try-catch’ los códigos para manejar las excepciones y qué excepción se manejará, que son fácilmente legibles.
En ‘if-else’, tenemos un bloque else correspondiente a un bloque if. O necesitamos definir otra condición con el comando ‘else if’. En ‘try-catch’ no tenemos que definir cada bloque ‘try’ con un bloque ‘catch’.
‘if-else’ consume menos tiempo que ‘try-catch’. ‘try-catch’ consume más tiempo que ‘if-else’.
‘if-else’ se comunica entre los datos proporcionados al programa y la condición. ‘try-catch’ se comunica entre los datos con las condiciones y el sistema.

Publicación traducida automáticamente

Artículo escrito por SoumikMondal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *