Introducción Esta es la parte 1 de mi serie, control de excepciones en PHP. En esta parte de la serie nos fijamos en los fundamentos de las excepciones en PHP. Es necesario un conocimiento básico en PHP y PHP Programación Orientada a Objetos para entender esta serie. Si usted no tiene conocimientos en cualquiera de esos campos a continuación, desde este blog, leer la serie cuya primera parte se titula, "Primeros pasos con PHP" y otro cuya primera parte se titula "Aspectos básicos de POO en PHP".
Para llegar a cualquiera de la serie, sólo tienes que escribir el título y mi nombre Chrys en el cuadro de búsqueda de esta página y haga clic en Buscar. Nota: Si no puede ver el código o si cree que falta algo (enlace roto, la imagen ausente), simplemente en contacto conmigo en [email protected]. Es decir, en contacto conmigo para el más mínimo problema que tenga acerca de lo que está leyendo.
Tiempo de ejecución error Ejemplo Considere el siguiente código: $ numerador = 8; $ denominador = 2; if ($ denominador = 0!) {$ respuesta = $ numerador /denominador $; echo $ respuesta; } Else {echo "La división por cero no está permitido!"; }?> Este código básicamente divide dos números. En la vida no se puede dividir un número por cero. Suponiendo que el denominador es de entrada por el usuario, se puede introducir cero. La división (proceso) por cero no debe permitirse. Echemos un vistazo a lo que está en el código: los dos primeros estados son la inicialización de los enteros.
La división deberá tener lugar en el bloque si. Los if-condición comprueba si el denominador es cero. Si no lo es, la división se produce en el bloque if. Si lo es, la parte else if-del constructo muestra un mensaje de error al usuario. Este segmento de código es correcto, ya que si el denominador es cero, no se ejecutará el bloque si y hay división se llevará a cabo. Con el código anterior, la ejecución del programa continúa después del if /else constructo. Este if /else constructo hace la división y previene error de ejecución se llevara a cabo.
El bloque si hace la división; El MI-condición comprueba si se produciría el error; si ocurriría error, el bloque else muestra un mensaje de alerta y la si-bloque no se ejecutan y la división. Componentes básicos de Excepción En términos simples, la excepción es un error. Con el manejo de excepciones, usted tiene lo que se llama la construcción try /catch; formado por los bloques try y catch. El bloque try tiene una expresión importante, que es, lanzar. tiro toma un nuevo objeto llamado el objeto de excepción. El objeto de excepción es un objeto predefinido que le ayuda a manejar excepciones.
En lo anterior if /else construir, el segmento de código de interés, que es el segmento requerido, es el bloque si. Este bloque si-es lo que hace la división. Con manejo de excepciones, ese segmento de código de interés entra en el bloque try; el segmento de código controlador de mensajes de error segmento de código o error entra en el bloque catch. La expresión tiro en el bloque try-catch-llama al bloque de pasar un nuevo objeto de excepción a la misma. La construcción de la captura es como una función.
Esta es la sintaxis básica para el manejo de excepciones, try {//declaraciones de interés arrojan nueva Excepción (errorMessage, código); } Catch (Exception $ e) {//manejar el error} El argumento a favor de la expresión tiro no entra en paréntesis. Es una nueva Excepción objeto instanciado que no necesita tener un nombre. Usted puede torcer su código vuelta para darle un nombre, pero es bien, ya que está por encima. Los parámetros del nuevo objeto de excepción son opcionales. El primero es el mensaje de error de su elección que desea dar al usuario del programa.
El segundo es un número entero de su elección que representa el error. El bloque catch debe seguir inmediatamente al bloque try en su escritura, como en la sintaxis anterior. Recibe el nuevo objeto excepción instancia lanzado. El parámetro para el bloque catch es, "Exception $ e". Aquí, la palabra, de excepción, significa que el tipo de objeto recibido, es un objeto de excepción. $ e es la variable que identifica el nuevo objeto de excepción instanciado (recibida en el bloque catch).
El programa anterior se re-escrito con el try /catch construir de la siguiente manera: $ numerador = 8; $ denominador = 2; try {if ($ denominador = 0!) {$ respuesta = $ numerador /denominador $; echo $ respuesta; } Else {throw new Excepción ("División por cero no está permitido!"); }} Catch (Exception $ e) {echo $ e-> getMessage (); }?> Leer y probar el programa anterior. Cambie el valor de $ denominador a cero y tratar de nuevo el programa. Recuerde, para el operando tiro arriba, los dos argumentos de la función constructora de la clase de excepciones son opcionales.
En este código, se ha dado sólo el mensaje de error de la elección del programador. Si el programador no da este argumento, el mensaje de error por defecto de "Desconocido excepción" que se celebrará en el nuevo objeto de excepción instanciado. El bloque catch detecta el objeto excepción lanzada como parámetro (argumento), $ e. La clase Exception tiene un método que lea el mensaje de error que ha escrito durante la instanciación del nuevo objeto excepción. El nombre del método es, getMessage. La captura de bloque anterior simplemente se hace eco del mensaje. Lea el código de nuevo.
En muchos casos, el bloque try equivalente tiene una condición si cuyo bloque se ejecutará si la condición no detecta el error. Si la condición detecta el error, el bloque si no se ejecutará, y la parte más va a lanzar la excepción; es decir, la parte más va a llamar a la captura de bloque de enviar el argumento (una instancia objeto de excepción) de la expresión de tiro, a la misma. El bloque catch utiliza el argumento para mostrar un mensaje de error apropiado (escrito en durante la instanciación) al usuario. Esto es lo que ocurre en muchos casos.
Los errores no son generalmente tramitadas en el verdadero sentido de la palabra; por lo general un mensaje de error se envía al usuario, un if-construir en el bloque try impide que el error se produzca realmente. Después de esta ejecución, el programa continúa en la secuencia de la construcción try /catch; y no hay ninguna terminación de programa, incluso si se ha detectado un error.
Tire a la expresión de una función Usted puede poner lo que usted necesita para el bloque try en una función, como se ilustra a continuación: $ numerador = 8; $ denominador = 2; funcionar errFn () {if {$ respuesta = $ numerador /denominador $ ($ denominador = 0!); echo $ respuesta; } Else {throw new Excepción ("División por cero no está permitido!"); }} Try {errFn (); } Catch (Exception $ e) {echo $ e-> getMessage (); }?>