Foros del Web » Programando para Internet » PHP »

manejadores de errores personalizados

Estas en el tema de manejadores de errores personalizados en el foro de PHP en Foros del Web. Hola, he leido que aparte de con "@" o "die()" se pueden controlar los errores en PHP con la creación de manejadores de errores personalizados. ...
  #1 (permalink)  
Antiguo 16/05/2003, 07:45
Avatar de da2
da2
 
Fecha de Ingreso: abril-2003
Ubicación: Catalunya
Mensajes: 239
Antigüedad: 14 años, 8 meses
Puntos: 0
Pregunta manejadores de errores personalizados

Hola,
he leido que aparte de con "@" o "die()" se pueden controlar los errores en PHP con la creación de manejadores de errores personalizados. La verdad es que no pillo la idea ni el sistema de utilizarlos.
Alguien puede esplicarlo de forma simple? O decirme donde encontrar un tutorial sobre el tema (pero para novatillos)

Un saludo
  #2 (permalink)  
Antiguo 16/05/2003, 10:43
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 16 años, 1 mes
Puntos: 68
Pues para "novatillos" no hay nada ya que no es un tema de "novatillos".
No te recomiendo 1 solo, porque con 1 solo no vas a comprender perfectamente el concepto, te paso la b´usqueda en Google que ya directamente te muestra los mejores art´iculos al respecto, he leido la mayor´ia hace un tiempo y son todos recomendables.

Saludos.

http://www.google.com/search?q=error+handling+in+php
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #3 (permalink)  
Antiguo 16/05/2003, 11:10
Avatar de Pino  
Fecha de Ingreso: abril-2003
Ubicación: Cangas do Morrazo, Pontevedra, Galicia, España, Europa, etc
Mensajes: 490
Antigüedad: 14 años, 7 meses
Puntos: 0
mmmm... interesante, esto no lo sabía yo.

un saludo, aquí se aprende todos los días
__________________
Pïno
Webmaster de Programas Lynx
Usuario Registrado de Linux #327681

Mi cuerpo en windows, pero mi mente pensando en linux.
  #4 (permalink)  
Antiguo 16/05/2003, 12:12
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
el "die()" .. exactamente no es una forma de control de errores .. mas bien es "cómo y cuando se usa" ..

Osese, una función que devuelva "FALSE" si no puede ejecutarse puedes montar un condicionar tipo funcion() OR haces tal cosa .. Lo típico es que si la función no ha "funcionado" digamos algo como "dame un mensajito y termina de ejecutar el script" .. Para eso el die() hace eso mismo .. muestra mensaje y termina el script (tambien lo hace exit("mensaje de error"); )

El ejemplo típico de uso ya lo habras visto en funciones de conexión a BD:

Código PHP:
mysql_connect(....) OR die ("No se pudo conectar. Mysql dijo: ".mysql_error()); 
Pero .. bajo la misma estructura "condicional" podríamos hacer:

Código PHP:
mysql_connect(....) OR header ("location: pagina de error.php"); exit; 
Con lo cual igualmente "identificamos el error" (pues esa función devuelve "FALSE" al no poder ejecutarse ..) y en este caso redireccionamos a una pagina cualquiera donde mostramos un error mas completo que una frase ... En resumen .. funcion OR (si falla, devuelve false ...ejecuta código)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 16/05/2003, 15:45
Avatar de da2
da2
 
Fecha de Ingreso: abril-2003
Ubicación: Catalunya
Mensajes: 239
Antigüedad: 14 años, 8 meses
Puntos: 0
Webstudio,
me quitas un peso de encima. Con el libro que estoy siguiendo me he perdido totalmente al llegar a este punto y por eso pedia ayuda a ver si entendia algo.

Gracias por el link
  #6 (permalink)  
Antiguo 16/05/2003, 15:55
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

La idea es sutituir la funcion de PHP que trata el error (mostrando el mensaje, parando el script, etc) por una nuestra propia.

Cluster, para tu segundo ejemplo mejor:
Código PHP:
if (!mysql_connect(....)){ header ("location: pagina de error.php"); exit;} 
sino, siempre se ejecuta el exit; (esta en otra sentencia y el OR solo es para 2 expresiones).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 16/05/2003, 16:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Sip, Josemi ... ahora me percaté del problemilla .. Gracias por la acotación.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 17/05/2003, 15:53
Avatar de da2
da2
 
Fecha de Ingreso: abril-2003
Ubicación: Catalunya
Mensajes: 239
Antigüedad: 14 años, 8 meses
Puntos: 0
Cluster,
en la pagina de error.php pondriamos solo un cartel que dijera ERROR, o se podria usar distintos mensajes segun el tipo de error?

Lo primero que me lia del libro que sigo es que dice que hay dos tipos de errores: Estandar y persomalizados.
Los estandar son 8 y los personalizados 3. Luego dice que a cada error le corresponde un numero. Ejemplo: E_COMPILE_ERROR le corresponde el numero 64.
No le corresponderia un numero del 1 al 8 si solo hay 8 errores estandar????

Alguien tiene una explicació?

Última edición por da2; 17/05/2003 a las 15:53
  #9 (permalink)  
Antiguo 17/05/2003, 18:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En la página que redirecionas .. podrías poner lo que quieras .. par eso como redirección que es le pasarías alguna variable de control que indique que mensaje ha de mostrar ..

algo tipo:

header("location: pagina_error.php?error_codigo=nº");

(pero con la estructura que te mencionó Josemi . no con la que puse yo .. para que puedas poner el exit; sin porblemas).

------

Esos errores son "Constantes" .. así que no tienen porqué ser correlativos ya que existen muchas mas constantes en PHP (no me he puesto a mirar . .pero seguro que ese bloque mas o menos va correlativo .. )

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 18/05/2003, 05:49
Avatar de da2
da2
 
Fecha de Ingreso: abril-2003
Ubicación: Catalunya
Mensajes: 239
Antigüedad: 14 años, 8 meses
Puntos: 0
OK,
gracias por la aclaración. De todas formas seguiré investigando sobre el tema pq no lo tengo muy claro. Creo que estoy mezclando dos cosas distintas

Un saludo y gracias por vuestra infinita paciencia.
  #11 (permalink)  
Antiguo 18/05/2003, 14:18
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Los valores de las constantes son potencias de 2. ¿Por que? Porque los informaticos solo sabemos contar en binario . Ahora en serio. Al ser potencias de 2 nos permite usar la suma y saber los sumandos. Por ejemplo, 7 sera la suma de 1, 2 y 4.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #12 (permalink)  
Antiguo 18/05/2003, 14:50
Avatar de da2
da2
 
Fecha de Ingreso: abril-2003
Ubicación: Catalunya
Mensajes: 239
Antigüedad: 14 años, 8 meses
Puntos: 0
Gracias josemi,
pero creo que lo dejaré para más a delante. Creo que me urge aprender otras cosas.

Saludos
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 16:03.