Foros del Web » Programando para Internet » PHP »

Duda : ¿Try Catch!!?, porque tira error???

Estas en el tema de Duda : ¿Try Catch!!?, porque tira error??? en el foro de PHP en Foros del Web. Alguien sabe porque da error!!!?? Código PHP: <?php function  prueba () {      $destino  =  "sakjh" ;      $archivo  =  "sakjh" ;     try      {          ...
  #1 (permalink)  
Antiguo 20/05/2008, 11:36
 
Fecha de Ingreso: diciembre-2007
Mensajes: 169
Antigüedad: 16 años, 5 meses
Puntos: 6
Pregunta Duda : ¿Try Catch!!?, porque tira error???

Alguien sabe porque da error!!!??
Código PHP:
<?php
function prueba()
{
    
$destino "sakjh";
    
$archivo "sakjh";
    try 
    {
        
set_error_handler(create_function(''"throw new Exception(); return true;"));
        echo 
"Funciona<br/>";
    }
    catch (
Exception $e
    {
       return 
false;
    }
    return 
true;
}

if(
prueba()) echo date("Y-m-j");
?>
Pero ahora si lo hago así, no da error:

Código PHP:
<?php
function prueba()
{
    
$destino "sakjh";
    
$archivo "sakjh";
    try 
    {
        
set_error_handler(create_function(''"throw new Exception(); return true;"));
        echo 
"Funciona<br/>";
    }
    catch (
Exception $e
    {
       return 
false;
    }
    return 
true;
}
$fecha date("Y-m-j");
if(
prueba()) echo $fecha;
?>
  #2 (permalink)  
Antiguo 20/05/2008, 11:43
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Duda : ¿Try Catch!!?, porque tira error???

depende del PHP ke uses... yo no sabia ke existiera try/catch para PHP, solo javascript... de ahi en fuera, incluso... tu codigo es correcto
  #3 (permalink)  
Antiguo 20/05/2008, 12:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Duda : ¿Try Catch!!?, porque tira error???

Hola albertcito,

¿Que error te da?

@pateketrueke,

Try/Catch están disponibles desde PHP5.

Saludos.
  #4 (permalink)  
Antiguo 20/05/2008, 12:33
 
Fecha de Ingreso: diciembre-2007
Mensajes: 169
Antigüedad: 16 años, 5 meses
Puntos: 6
Respuesta: Duda : ¿Try Catch!!?, porque tira error???

Este es el error, tal cual :D


Funciona

Fatal error
: Uncaught exception 'Exception' in C:\AppServ\www\sitio\prueba.php(8) : runtime-created function:1 Stack trace: #0 [internal function]: __lambda_func(2048, 'date() [<a href...', 'C:\AppServ\www\...', 18, Array) #1 C:\AppServ\www\sitio\prueba.php(18): date('Y-m-j') #2 {main} thrown in C:\AppServ\www\sitio\prueba.php(8) : runtime-created function on line 1
  #5 (permalink)  
Antiguo 20/05/2008, 12:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Duda : ¿Try Catch!!?, porque tira error???

Mmm pues a que te refieres con "funcionar" ya que en tu argumento de create_function tu estas pasando un throw exception, así que es correcto que te lance una excepción.

Saludos.
  #6 (permalink)  
Antiguo 20/05/2008, 20:15
 
Fecha de Ingreso: diciembre-2007
Mensajes: 169
Antigüedad: 16 años, 5 meses
Puntos: 6
Respuesta: Duda : ¿Try Catch!!?, porque tira error???

No pero la pregunta es: si escribo de una manera el programa me tira: Fatal error, y si escribo de la otra no me lanza error y se ejecuta exactamente el mismo código; si el pie de tropiezo del código es esta función: date("Y-m-j")
  #7 (permalink)  
Antiguo 21/05/2008, 01:20
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Duda : ¿Try Catch!!?, porque tira error???

El error que te está apareciendo es un E_STRICT causado por date(). Dice la documentación de date:
"Every call to a date/time function will generate a E_NOTICE if the time zone is not valid, and/or a E_STRICT message if using the system settings or the TZ environment variable. See also date_default_timezone_set()"

"Toda llamada a una función de fecha/hora generará un E_NOTICE si la franja horaria no es válida y/o un E_STRICT si se ha usado la configuración del sistema o la variable de entorno. Ver también date_default_timezone_set()"

De hecho, si configuras como E_STRICT verás que dice:
Cita:
PHP Strict Standards: date(): It is not safe to rely on the system's timezone s
ettings. Please use the date.timezone setting, the TZ environment variable or th
e date_default_timezone_set() function. In case you used any of those methods an
d you are still getting this warning, you most likely misspelled the timezone id
entifier. We selected 'Europe/Paris' for '2.0/DST' instead in C:\2.php on line 17

Ahora bien... ¿Por qué en un caso se enmascara y en el otro no? No lo puedo asegurar, pero diría que es por la asignación. Hacer date("Y-m-j"); deja subir el aviso, pero $fecha = date("Y-m-j"); lo suprime.
  #8 (permalink)  
Antiguo 21/05/2008, 01:24
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Duda : ¿Try Catch!!?, porque tira error???

recomiendo configurar el php.ini, solo buscar la seccion [date] y ahi, descomentas el timezone.... si gustas
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 02/06/2008, 12:36
 
Fecha de Ingreso: junio-2008
Ubicación: Valencia (España)
Mensajes: 45
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: Duda : ¿Try Catch!!?, porque tira error???

Venkman el error del date time zone, se me ha dado hoy mismo y tras googlear he hallado una respuesta que me ha ayudado

Resulta que desde PHP5.1 cuando utilizas la función date(), previamente si pones

//en el caso de que la web esté alojada en España
date_default_timezone_set ("Europe/Paris");

el error desaparece.

La explicación que dan sobre el origen de esta función en php.net es la siguiente:

"Desde PHP 5.1.0 (cuando las funciones de fecha/hora son reescritas), cada llamada a una función fecha/hora regenera un E_NOTICE si la zona horaria no es válida, y /o un mensaje E_STRICT..."

Un saludo desde Valencia
  #10 (permalink)  
Antiguo 15/07/2008, 10:20
Avatar de Erebus  
Fecha de Ingreso: junio-2008
Mensajes: 52
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Duda : ¿Try Catch!!?, porque tira error???

Cita:
Iniciado por GatorV Ver Mensaje
Try/Catch está disponible desde PHP5.
D: !!!
ahora todo es luminoso
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 17:00.