¿Como colocar excepciones en la clase de Usuario?

Estado
No está abierto para más respuestas.

Paulita

Piedra
Usuario de Piedra
Mensajes
46
Puntuación de reacción
0
Buenos días, tengo una duda como puedo crear excepciones en mi clase de usuario? hasta los momentos he hecho esto pero no sé cómo hacer en la clase las excepciones:
Este es un ejemplo de la clase de usuario:

PHP:
Class Usuario{
private $nombUsuario;
private $claveUsuario;

public function __construct(nombUsuario=null,$claveUsuario=null){
$this->nombUsuario=$nombUsuario;
$this->claveUsuario=$claveUsuario;
}
public function getNombUsuario(){
	return $this->nombUsuario;
}
public function getClave(){
	return $this->claveUsuario;
}
public function setNombUsuario($nombUsuario){
	$this->nombUsuario=$nombUsuario;
}
public function setClave($claveUsuario){
	$this->claveUsuario=$claveUsuario;
}
public function agregarUsuario(){
	$conexion=new Conexion();
	$consulta=$conexion->prepare('INSERT INTO usuario (nombUsuario, claveUsuario) VALUES (?,?)');
	$consulta->bind_param("ss",$this->nombUsuario,$this->claveUsuario);
				if($consulta->execute())
				{
					$consulta->close();
					return true;
				}
				else
				{
					$consulta->close();
					return false;
				}
}
}

PHP:
require_once(ubicaciondelarchivo);
try{
$objUsuario=new Usuario();
$objUsuario-> setNombUsuario($Usuario);
$objUsuario-> setClave($Clave);
if($objUsuario-> agregarUsuario()==true)
{
echo “Se ha registrado correctamente”;
}
} catch (Exception $e) {
echo $e->getMessage(); 
}

En $e->getMessage(); no muestra nada porque si ocurre un error en la clase no está pasando ningún mensaje, como puedo colocar excepciones?
 
Mensajes
364
Puntuación de reacción
4
En principio veo varios problemas, el primero de ellos es que no encuentro la clase conexión que quieres llamar en el programa. Así que no creo que puedas ejecutarlo si quiera.


Las comillas no las veo bien, pero puede ser por el editor de código.

Esta linea le falta el signo $
PHP:
public function __construct($nombUsuario=null,$claveUsuario=null){

Si cambias eso, y eliminas lo de la clase conexion, pues no hará nada pero funcionará... no se si me explico
PHP:
Class Usuario{ 
private $nombUsuario; 
private $claveUsuario; 

public function __construct($nombUsuario=null,$claveUsuario=null){ 
$this->nombUsuario=$nombUsuario; 
$this->claveUsuario=$claveUsuario; 
} 
public function getNombUsuario(){ 
    return $this->nombUsuario; 
} 
public function getClave(){ 
    return $this->claveUsuario; 
} 
public function setNombUsuario($nombUsuario){ 
    $this->nombUsuario=$nombUsuario; 
} 
public function setClave($claveUsuario){ 
    $this->claveUsuario=$claveUsuario; 
} 
public function agregarUsuario(){ 
  /*  $conexion=new Conexion(); 
    $consulta=$conexion->prepare('INSERT INTO usuario (nombUsuario, claveUsuario) VALUES (?,?)'); 
    $consulta->bind_param("ss",$this->nombUsuario,$this->claveUsuario); 
                if($consulta->execute()) 
                { 
                    $consulta->close(); 
                    return true; 
                } 
                else 
                { 
                    $consulta->close(); 
                    return false; 
                } 
} */
echo "HOLA";


}

No lo he probado obviamente, así que pueden salir más cositas :)

Saludos
 
Última edición:

jarcx09

Piedra
Usuario de Piedra
Mensajes
28
Puntuación de reacción
0
Hola amigo para hacer un exepcion y validacion back-end se utilzia un try catch
lo de la conexion que veo se debe declarar globalmente para que la puedas utilizar en cualquier parte del codigo

PHP:
public function agregarUsuario(){  
    {
        try {

            $consulta=$conexion->prepare('INSERT INTO usuario (nombUsuario, claveUsuario) VALUES (?,?)');  
            $consulta->bind_param("ss",$this->nombUsuario,$this->claveUsuario);  
                if($consulta->execute())  
                {  
                    $consulta->close();  
                    return true;  
                }  
                else  
                {  
                    $consulta->close();  
                    return false;  
                }  
           
        }
        catch (Exception $e) {
            return array('info' => array('noError' => false, 'errorMessage' => $e->getMessage()));
        }
    }
 
Estado
No está abierto para más respuestas.
Arriba