Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/10/2013, 09:04
Avatar de andresdzphp
andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 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