Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Extendiendo class Excepction...

Estas en el tema de Extendiendo class Excepction... en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buenas, necesito ayuda con unas excepciones... No manejo muy bien el tema de los try/catch. Hice unos para manejar errores en la Conexion MySQL y ...
  #1 (permalink)  
Antiguo 24/08/2009, 16:19
 
Fecha de Ingreso: julio-2009
Mensajes: 2
Antigüedad: 15 años, 5 meses
Puntos: 0
Extendiendo class Excepction...

Buenas, necesito ayuda con unas excepciones...

No manejo muy bien el tema de los try/catch. Hice unos para manejar errores en la Conexion MySQL y me quedo bien, hasta lo hice con log y todo jeje.
El tema es que tengo este codigo y no se bien donde poner los try/throw/catch:

Código:
    private function getQueryResult(){
        return $this->queryResult;
    }
 
    public function getRow (){
        
        if($this->getQueryResult())
            if ($row = mysql_fetch_assoc($this->getQueryResult()))
                return $row;
        return false;
    }
    
    public function getRowSet(){
                
        $result = array();
        if($this->getQueryResult()){
            while($row = mysql_fetch_assoc($this->getQueryResult())){
                $result[] = $row;
            }
        
        return $result;
        }
    }
    
    public function rowCount (){
                return mysql_num_rows($this->getQueryResult());
    }
    
    public function lastId(){
        return mysql_insert_id();
    }
Me ayudarían un monton si me dijeran mas o menos donde irían los try/catch.
Ya tengo la clase MySQLException por las dudas...

Saludos y gracias!
  #2 (permalink)  
Antiguo 24/08/2009, 18:50
 
Fecha de Ingreso: agosto-2009
Ubicación: Buenos Aires
Mensajes: 13
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Extendiendo class Excepction...

Mira... en forma sencilla cuando se labura con excepciones siempre participan 2 objetos al menos. Uno es el que genera la excepción y otro el que la captura y trata (podrian intervenir mas objetos pero como ejemplo estos 2 alcanzan)

Por ejemplo
Código PHP:

<?
//clase que genera un error
class Saludo
{
   public function 
getSaludos(){ echo 'hola!'; }
   public function 
getError(){  throw new Exception('esto es un error');}
}


//script/objeto que caputa la excepcion
try {
   
$obj = new Saludo();
   
$obj->getSaludo();
   
$obj->getError();
}catch (
Exception $e){
   
$e->getMessage();
}

//aca sigue mi sscript
?>
Tene en cuenta que la excepcion para ser caputurada por tu script debe estar dentro del bloque del try, de lo contrario sera capturada por PHP

Otra cosa a tener en cuenta es que el codigo que este debajo de getError, o sea, el codigo que esta dentro del try por debajo de cuando se genera la execpcion no se ejecutara. SI el ejemplo anterior ponemos al revez los metodos no se vera ningun saludo en pantalla.

Código PHP:
<?
//script/objeto que caputa la excepcion
try {
   
$obj = new Saludo();
   
$obj->getError();
   
$obj->getSaludo();
}catch (
Exception $e){
   
$e->getMessage();
}

//aca sigue mi sscript
?>
En cuanto a los metodos q publicaste yo no lanzaria ninguna excepcion en ellos... pero si lo habira en los metodos que realizas la conexion a la base o la consulta a la bd.
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 02:28.