Requisito previo: Tipos de error
PHP se utiliza para el desarrollo web. El manejo de errores en PHP es casi similar al manejo de errores en todos los lenguajes de programación. El manejo de errores predeterminado en PHP dará el número de línea del nombre del archivo y el tipo de error.
Formas de manejar los errores de PHP:
- Usando el método die()
- Manejo de errores personalizado
Manejo básico de errores: Uso de la función die() La función die() imprime un mensaje y sale del script actual.
Sintaxis:
die( $message )
Ejemplo:
php
<?php // Php code showing default error handling $file = fopen("geeks.txt", "w"); ?>
Nota: Ejecute el código anterior y el archivo geeks.txt no está presente, entonces mostrará un mensaje de error en tiempo de ejecución.
Error de tiempo de ejecución:
PHP Warning: fopen(geeks.txt): failed to open stream: Permission denied in /home/dac923dff0a2558b37ba742613273073.php on line 2
Para evitar este error, utilice la función die(). A continuación se muestra la implementación de la función die():
Ejemplo:
php
<?php // PHP code to check errors // If file is not present // then exit from script if( !file_exists("geeks.txt") ) { die("File is not present"); } // If file is present // then continue else { $file = fopen("geeks.txt", "w"); } ?>
Nota: Si el archivo geeks.txt no está presente, se mostrará la salida.
Producción
File is not present
Manejo de errores personalizado: crear un controlador de errores personalizado en PHP es bastante simple. Cree una función a la que se pueda llamar cuando se produzca un error en PHP.
Sintaxis:
error_function( $error_level, $error_message, $error_file, $error_line, $error_context)
Parámetros: esta función acepta cinco parámetros, como se mencionó anteriormente y se describe a continuación:
- $error_level: Es un parámetro obligatorio y debe ser un número entero. Hay niveles de error predefinidos.
- $error_message: Es un parámetro requerido y es el mensaje que el usuario quiere imprimir.
- $error_file: Es un parámetro opcional y se utiliza para especificar el archivo en el que se ha producido el error.
- $error_line: Es un parámetro opcional y se utiliza para especificar el número de línea en el que se ha producido el error.
- $error_context: es un parámetro opcional y se usa para especificar una array que contiene cada variable y su valor cuando se produce un error.
error_level: estos son los posibles niveles de error que se enumeran a continuación:
- 1: .E_ERROR: error fatal en tiempo de ejecución, la ejecución del script se ha detenido
- 2: E_WARNING: se ha detenido la ejecución del script por error no fatal en tiempo de ejecución
- 4: E_PARSE: error de tiempo de compilación generado por el analizador
- 8 :E_NOTICE :El script encontró algo que podría ser un error
- 16 :E_CORE_ERROR :Errores fatales que ocurrieron durante el inicio inicial del script
- 32 :E_CORE_WARNING :Errores no fatales que ocurrieron durante el inicio inicial del script
- 8191 :E_ALL :Todos los errores y advertencias
Función set_error_handler(): Después de crear la función myerror(), es necesario establecer un controlador de errores personalizado porque, de forma normal, PHP lo maneja, pero si el usuario realiza un manejo personalizado de errores, entonces el usuario debe configurarlo en lugar del argumento y pasar la función myerror como una string.
Ejemplo:
php
<?php // Creates my error function which prints message //to user function myerror($error_no, $error_msg) { echo "Error: [$error_no] $error_msg "; echo "\n Now Script will end"; // When error occurred script has to be stopped die(); } // Setting set_error_handler set_error_handler("myerror"); $a = 10; $b = 0; // This will generate error echo($a / $b);; ?>
Producción:
Error: [2] Division by zero Now Script will end
Conclusión: siempre se intenta manejar los errores usando el manejo de errores personalizado porque mostrará un mensaje más específico según el usuario que puede ser útil para el usuario. Si el error no se maneja con el manejo personalizado de errores, entonces se produjo un error, entonces el script de salida se detendrá de manera predeterminada, pero si maneja el error usando el manejo personalizado de errores, entonces puede continuar con el script después de mostrar el mensaje de error.
Publicación traducida automáticamente
Artículo escrito por ankit15697 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA