Cómo aplicar prueba el bloque de captura en PHP

Cómo aplicar prueba el bloque de captura en PHP
El manejo de excepciones es una característica muy importante de cualquier programación orientada a objetos. Cuando llega cualquier error lógico o del sistema después de ejecutar cualquier código, se llama una excepción y la técnica por la cual el codificador puede manejar correctamente los errores se denomina manejo de excepciones. Se utiliza para evitar resultados inesperados de los usuarios finales, mejorar la seguridad de la aplicación y manejar errores predefinidos de manera eficiente. Esta característica es compatible con PHP de la versión 5. Intentar y atrapar El bloque se usa para manejar excepciones en la programación orientada a objetos. Intentar El bloque se usa para lanzar la excepción si se produce algún error y atrapar o finalmente El bloque se usa para manejar la excepción en PHP. Este tutorial lo ayudará a aprender el uso del manejo de excepciones de la programación orientada a objetos utilizando PHP.

Probar el bloque

PHP tiene una clase base nombrada Excepción y se arrojan excepciones de intentar bloquear a Excepción o subclase de Excepción clase.

Sintaxis:

intentar

//Código principal

Bloqueo

Atrapar El bloque aparece después intentar bloquear. PHP admite múltiples atrapar bloques para manejar múltiples excepciones. Cuando se lanza cualquier excepción, entonces Php intenta coincidir con el primer bloque de captura, luego el segundo bloque de captura si no coincide con el primero, y así sucesivamente.

Sintaxis:

intentar

//Código principal

Catch (excepción $ E)

// Código de manejo de errores

Finalmente bloquear

Finalmente, el bloque se puede usar después o en lugar del bloque de captura en PHP y este bloque se ejecuta cuando prueba las salidas del bloque. Cualquier código normal o de terminación se puede agregar a este bloque después de ejecutar el código del bloque de prueba.

Sintaxis:

intentar

//Código principal

Catch (excepción $ E)

// Código de manejo de errores

finalmente

// código normal

Ejemplo-1: Uso del bloque de captura de try para un error simple

El siguiente ejemplo muestra el uso de un bloque de captura de try para una sola excepción. Cree un archivo PHP con el siguiente script. El valor del parámetro de consulta 'numer'ha sido leído y revisado en el bloque de try. Si el valor está por debajo de 10, entonces el bloque de try lanzará una excepción en el bloque de captura. De lo contrario, el valor se imprimirá. Catch Block atrapará la excepción e imprima el mensaje Enviar desde el bloque de prueba. Si no pasa el parámetro de consulta, entonces el valor predeterminado será de 100.

// probar el número es 10 o más
intentar

if (isset ($ _ get ['num']))
// leer el valor de la URL
$ n = $ _get ['num'];
demás
// Establecer el valor predeterminado
$ N = 100;
if ($ n <10)

// Si se lanza la excepción, entonces Catch Block mostrará el siguiente mensaje de error
arrojar una nueva excepción ("

El número debe ser 10 o más.

");

demás

// ejecuta esta línea si no aparece ningún error.
eco "

El número es $ N

";


// Atrapa la excepción del bloque de try
Catch (excepción $ E)

// Imprima el mensaje de error pasado desde el bloque de prueba
echo $ e-> getMessage ();

?>

Producción:

Ejecute el script sin ningún parámetro de consulta.

http: // localhost/phpcode/trycatch1.php

Ejecute el script con un valor de parámetro de consulta que es inferior a 10.

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

Ejecute el script con un valor de parámetro de consulta que es mayor que 10.

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

Ejemplo-2: Manejo de múltiples errores heredando la clase de excepción

Cree un archivo PHP con el siguiente script para manejar las múltiples excepciones utilizando múltiples bloques de captura. Una subclase llamada 'MyException'se ha creado extendiendo la clase base'Excepción'Para manejar el'Error de URL no válido'. La clase base Excepción se ha utilizado para manejar 'Error de URL vacío'.

// declarar una subclase myException extendiendo la clase de excepción
La clase MyException extiende la excepción
// Establecer el mensaje de error en el constructor
función pública __construct ($ message = null, $ code = 0)
$ this-> mensaje = $ mensaje;

// Muestra el mensaje de error
función pública display_error ()

eco '

'.$ this-> mensaje.'No es una dirección de URL válida

';


intentar

// Establecer la dirección de URL usando el parámetro de consulta o el valor predeterminado
$ url = isset ($ _ get ['url'])?$ _Get ['url']: "https: // linuxhint.com ";
// Verifique que la dirección de la URL esté vacía o no
if ($ url == "")
// Si la dirección de URL está vacía, entonces el siguiente mensaje de error se lanzará
arrojar una nueva excepción ("

La dirección de URL está vacía.

");

// Verifique que las dirección de URL son válidas o no válidas
elseif (!filtre_var ($ url, filter_validate_url))
// Si la dirección de la URL no es válida, entonces una excepción se lanzará con una dirección de URL no válida
tirar nueva MyException ($ URL);

demás

// Imprimir mensaje para la dirección de URL válida
eco "

".$ URL."es una dirección de URL válida

";


// manejar la excepción de URL no válida
Catch (myException $ e)
// llame al método de subclase para imprimir el mensaje de error
echo $ e-> display_error ();

// manejar la excepción de URL vacía
Catch (excepción $ E)

// Imprimir mensaje de error para la dirección de URL vacía
echo $ e-> getMessage ();

?>

Producción:

Ejecute el script sin ningún parámetro de consulta.

http: // localhost/phpcode/trycatch2.php

Ejecute el script con un parámetro de consulta nombrado url sin ningún valor.

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

Ejecute el script con un parámetro de consulta nombrado url con un valor de URL inválido.

http: // localhost/phpcode/trycatch2.php?URL = Google

Ejecute el script con un parámetro de consulta nombrado url con un valor de URL válido.

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

Ejemplo-3: Error de archivo de manejo utilizando, capturar y finalmente bloquear

Cree un archivo PHP con el siguiente script para conocer el uso de try, atrapar y finalmente bloquear. El script intentará abrir la prueba del archivo '.El bloque txt 'y try lanzará una excepción si el archivo no existe en la ubicación actual o no puede abrir. El bloque de captura imprimirá el mensaje de error lanzado desde el bloque de prueba. El código del bloque Finalmente cerrará el controlador de archivos después de ejecutar el bloque de try. Prueba el bloque imprimirá el contenido del archivo si no aparece ningún error.

error_reporting (0);
intentar

// Intenta abrir un archivo para leer
$ file_handler = fopen ("prueba.txt "," r ");
si(!$ file_handler)

// arroja la excepción si el archivo no puede abrir
arrojar una nueva excepción ("

No se puede abrir el archivo.

");

demás

// Imprima el centro del archivo
mientras(!FEOF ($ file_handler)))

echo fgets ($ file_handler) . "
";

fclose ($ file_handler);


Catch (excepción $ e)
// Imprima el mensaje de error para abrir la excepción de error de archivo
echo $ e-> getMessage ();

finalmente

// Mensaje de terminación de impresión
Programa de eco "terminado.";

?>

Producción:

Ejecutar el guión.

http: // localhost/phpcode/trycatch3.php

Ejemplo-4: Uso del bloque de intento de prueba anidado

Cree un archivo PHP con el siguiente script para conocer la forma de usar el bloque de tráfico de try anidados. El script verificará que el valor tomado de una URL sea un número o no en el primer bloque de captura de prueba y el número tomado es mayor que 100 o no se verificará en el segundo bloque de captura de try.

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

// el primer bloque de try
intentar
$ número = $ _get ['n'];
if (is_numeric ($ number))

// el segundo bloque de try
intentar
if ($ number> = 100)
// Imprimir el mensaje de éxito
echo "El número es válido.";

demás
Lanzar una nueva excepción ('El número no es válido.');


Catch (excepción $ e)
// imprime el segundo error
echo $ e-> getMessage ();


demás

Lanzar una nueva excepción ('El valor no es un número.');


Catch (excepción $ e)
// Imprima el error Firt
echo $ e-> getMessage () . "
";


demás
echo "ningún número ha dado.";
?>

Producción:

Ejecute el script sin ningún parámetro de consulta.

http: // localhost/phpcode/trycatch4.php

Ejecute el script con el valor del parámetro de consulta inferior a 100.

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

Ejecute el script con el valor del parámetro de consulta superior a 100.

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

Ejemplo-5: Uso del bloque de captura de try con la función

Cree un archivo PHP con el siguiente script para conocer el uso del bloque de captura de try con la función. El script tomará dos valores numéricos de los parámetros de consulta de URL y el bloque de captura de prueba llamará a una función que lanzará una excepción si el "División por cero" Un error ha ocurrido.

// Definir la función para calcular la división
División de funciones ($ a, $ b)
$ resultado = $ a/$ b;
si(!$ resultado)
// Lanza una excepción para el resultado no válido
Lanzar una nueva excepción ('división por cero.');
demás
eco "

El resultado de $ A/$ B = $ resultado

";

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

intentar
$ number1 = $ _get ['n1'];
$ número2 = $ _get ['n2'];
// función de llamada que verificará el error
división ($ número1, $ número2);

Catch (DivisionByzeroError $ e)
// Imprima el mensaje de error
eco '

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

";


demás
echo "no se han proporcionado uno o más números.";
?>

Producción:

Ejecute el script sin ningún parámetro de consulta.

http: // localhost/phpcode/trycatch5.php

Ejecute el script con los valores de los parámetros de consulta, 10 y 5.

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

Ejecute el script con los valores de los parámetros de consulta, 10 y 0.

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

Ejemplo-6: Muestra de error de visualización en detalle para una excepción personalizada

Cree un archivo PHP con el siguiente script para mostrar el mensaje de error en detalle utilizando diferentes métodos de la clase de excepción. El script tomará el nombre de archivo del parámetro URL y verificará el archivo existe o no utilizando un bloque de captura de try.

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

intentar
$ filename = $ _get ['fn'];
si(!file_exists ($ filename))

Lanzar una nueva excepción ('El archivo no existe.');


Catch (excepción $ e)
// Muestra el mensaje de error en detalles
eco '
Nombre del archivo: '.$ e-> getFile ().
'
El error ocurrió en el número de línea: '.$ e-> getline ().
'
Mensaje de error: '.$ e-> getMessage ();

finalmente
eco "
Verifique otro archivo.";


demás
Echo "El nombre de archivo no ha dado.";
?>

Producción:

Ejecute el script sin ningún parámetro de consulta.

http: // localhost/phpcode/trycatch6.php

Ejecute el script con el parámetro de consulta que contiene el nombre de archivo no existente.

http: // localhost/phpcode/trycatch6.php?FN = texto.TXT

Ejecute el script con el parámetro de consulta que contiene el nombre de archivo existente.

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

Conclusión

Los usos básicos del bloque try-capch se han explicado en este tutorial utilizando scripts PHP muy simples. Espero que el concepto de manejo de excepciones en PHP se elimine después de practicar los ejemplos de este tutorial correctamente.