Foros del Web » Programando para Internet » PHP »

Control de errores en el try-catch

Estas en el tema de Control de errores en el try-catch en el foro de PHP en Foros del Web. Holaaa!! :D Buenas de nuevo , ahora tengo un problema en el control de errores con el try-catch ya que no consigo asignar el mensaje ...
  #1 (permalink)  
Antiguo 27/02/2014, 09:51
 
Fecha de Ingreso: noviembre-2010
Mensajes: 156
Antigüedad: 13 años, 5 meses
Puntos: 0
Control de errores en el try-catch

Holaaa!! :D

Buenas de nuevo , ahora tengo un problema en el control de errores con el try-catch ya que no consigo asignar el mensaje personalizado.

Primero en el controlador tengo lo siguiente

Código PHP:
Ver original
  1. try{
  2.             $usuari->addUser();
  3.  
  4.         }catch (MysqlException $ex){
  5.             throw $e->getMessage();
  6.         }

Y en el modelo

Código PHP:
Ver original
  1. /**Devuelve el mensaje numerico**/
  2.     public function errno(){
  3.       $error2 = mysql_errno($this->link);
  4.       return $error2;
  5.      
  6.    }
  7.    
  8. public function projecte($query){      
  9.         $con= $this->connect();
  10.         $this->bd('proyecto');
  11.        
  12.         return mysql_query($query, $con) or die('Yeee : '.$this->errno());
  13.        
  14.  
  15.     }

Pero mi idea es personalizar el mensaje de error que da mediante una funcion , por ejemplo 1062 , que ese error me sale cuando lhago el insert.

;Hola k ase : 1062
  #2 (permalink)  
Antiguo 27/02/2014, 13:22
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Control de errores en el try-catch

Primero que nada olvida el uso de la extensión mysql y cambiala por la mysqli:http://www.php.net/manual/en/book.mysqli.php

Para lo de las excepciones puedes hacer uso de mysqli_sql_exception: http://www.php.net/manual/en/class.m...-exception.php
Código PHP:
Ver original
  1. define("MYSQL_CONN_ERROR", "Unable to connect to database.");
  2.  
  3. // Ensure reporting is setup correctly
  4. mysqli_report(MYSQLI_REPORT_STRICT);
  5.  
  6. // Connect function for database access
  7. function connect($usr,$pw,$db,$host) {
  8.    try {
  9.       $mysqli = new mysqli($host,$usr,$pw,$db);
  10.       $connected = true;
  11.    } catch (mysqli_sql_exception $e) {
  12.       throw $e;
  13.    }
  14. }
  15.  
  16. try {
  17.   connect('username','password','database','host');
  18.   echo 'Connected to database';
  19. } catch (Exception $e) {
  20.   echo $e->errorMessage();
  21. }
Puedes extender la clase y generar tus propias exepciones
Otra forma es extender la propia clase mysqli:http://www.php.net/manual/en/mysqli.construct.php. Te dejo un articulo donde viene un ejemplo mas completo de esta aproximación: http://www.blrf.net/blog/223/code/ph...-with-example/
Ya leyendo sobre el tema se te pueden ocurrir otras cosas mas.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: control, errores, mysql, try-catch
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 11:20.