Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/05/2009, 08:32
Avatar de delarub
delarub
 
Fecha de Ingreso: mayo-2009
Mensajes: 20
Antigüedad: 15 años
Puntos: 2
Respuesta: Division by zero

Sencillo no es, pero aquí te dejo la única solución que se me ocurre.

Código PHP:
function error_propio($error_no$error_str$error_file$error_line) {
        if (
error_reporting() == 0) return;
        
// diferentes tipos de error
        
switch($error_no) { 
                case 
E_NOTICE:
                        return;
                        break; 
                case 
E_USER_NOTICE:
                        
$continue TRUE;        
                        
$type "Notice"
                        break;
                case 
E_USER_WARNING:
                case 
E_WARNING
                        
$continue TRUE;        
                        
$type "Warning"
                        break;
                case 
E_USER_ERROR:
                case 
E_ERROR:
                        
$type "Fatal Error"
                        break;
                default: 
                        
$type "Unknown Error"
                        break;
                }
        
// ponemos el error en el log
        
error_log("[".date("d-M-Y H:i:s")."] PHP $type: $error_parts[0] error in line $error_line of file $error_file"0);
        if (
$error_str == "Division by zero") {
           
// AQUI ES DONDE PUEDES HACER LO QUE QUIERAS SI ES DIVISION BY ZERO
                
}
        else { 
// si es otro, mostramos el error
                
echo "\n<div>".nl2br($error_str)."</div>\n";
                }

        if (!isset(
$continue)) exit();
        }

// ponemos nuestra funcion como error handler principal
set_error_handler("error_propio"); 
Cuidado con esto ya que esta funcion se salta todo el error handler de PHP, asi que asegurate que puede manejar todo tipo de errores. Mas o menos este que te pongo es como el de PHP pero no lo he probado con determinados tipos de errores.

Suerte

Última edición por delarub; 09/05/2009 a las 09:04