Foros del Web » Programando para Internet » PHP »

capturar errores try catch en general

Estas en el tema de capturar errores try catch en general en el foro de PHP en Foros del Web. hola una pregunta, queria saber si es posible capturar, cualquier error generado, en php, por ejemplo quiero hacer un sitio, y mientras lo desarrollo. ante ...
  #1 (permalink)  
Antiguo 29/10/2013, 07:24
 
Fecha de Ingreso: febrero-2013
Ubicación: en mi casa
Mensajes: 541
Antigüedad: 11 años, 8 meses
Puntos: 3
capturar errores try catch en general

hola una pregunta, queria saber si es posible capturar,
cualquier error generado, en php,
por ejemplo quiero hacer un sitio,
y mientras lo desarrollo. ante cualquier error, me genero un error en un txt..
creo que eso de las excepciones se realizan sobre una funcion, especifica,
de ahi se captura el error, pero asi generalizado...
  #2 (permalink)  
Antiguo 29/10/2013, 08:13
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 11 años, 2 meses
Puntos: 578
Respuesta: capturar errores try catch en general

Puedes hacer un error_reporting(E_ALL) y se guardarán en el archivo error_reporting.
  #3 (permalink)  
Antiguo 29/10/2013, 09:04
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: capturar errores try catch en general

Con ErrorException puedes capturar los errores que no sean fatales en una excepción, ejemplo:

Código PHP:
Ver original
  1. <?php
  2.  
  3. function exception_error_handler($errno, $errstr, $errfile, $errline) {
  4.     throw new ErrorException($errstr, $errno, 0, $errfile, $errline);
  5. }
  6. set_error_handler("exception_error_handler");
  7.  
  8. try {
  9.     strpos();
  10. } catch (ErrorException $ee) {
  11.     echo $ee->getMessage(); //Aquí iría tu log de errores txt
  12. }

En este caso imprime:

Cita:
strpos() expects at least 2 parameters, 0 given
Si usas el método getTrace(), getCode(), getFile(), getMessage() etc. Puedes encontrar errores fácilmente.

En caso de tener PDOException y Exception las vas lanzando con throw, primero ErrorException, luego PDOException y por último Exception. Algo así:

Código PHP:
Ver original
  1. <?php
  2.  
  3. function exception_error_handler($errno, $errstr, $errfile, $errline) {
  4.     throw new ErrorException($errstr, $errno, 0, $errfile, $errline);
  5. }
  6. set_error_handler("exception_error_handler");
  7.  
  8. try {
  9.    
  10.     try {
  11.        
  12.         try {
  13.            
  14.             strpos();
  15.    
  16.         } catch(ErrorException $ee) {
  17.             throw $ee;
  18.         }
  19.    
  20.     } catch(PDOException $pdoe) {
  21.         throw $pdoe;
  22.     }
  23.  
  24. } catch(Exception $e) {
  25.     echo $e->getMessage(); //Aquí iría tu log de errores txt
  26. }

Para mandar un error desde tu aplicación sería:

Código PHP:
Ver original
  1. throw new Exception('Tu mensaje de error');

También muy útil usar la directiva error_log para mostrar un log de errores de PHP general.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #4 (permalink)  
Antiguo 31/10/2013, 08:44
 
Fecha de Ingreso: febrero-2013
Ubicación: en mi casa
Mensajes: 541
Antigüedad: 11 años, 8 meses
Puntos: 3
Respuesta: capturar errores try catch en general

excelente:!

Etiquetas: catch, errores, general
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:45.