Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/01/2010, 14:34
Fenris
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 14 años
Puntos: 2
Pregunta como capturo esta excepcion

Hola a todos

Espero que me ayuden, tratando de entender las excepciones me he metido en un lío, resulta que desde los controladores llamo a un método que carga un modelo, a este método le paso el nombre del modelo y el objeto controlador para que de esta forma tenga acceso a métodos del controlador en el modelo y pueda interactuar a través de este con la vista así tengo mi implementación. En el método que carga el modelo valido que me pasen un modelo (string) y un objeto controlador, si no me pasan un modelo o un objeto controlador envió una excepción, pero como muestro en la vista, esa excepción y que pasa con la excepción si no me pasan un controlador, no seria mejor en caso de que no me pasen un controlador usar la función die();

Metodo que carga el modelo
Código:
	public function loadModel($_model, $_controllerClass)
	{
        if (is_string($_model)
            && (('' === $_model)
                || preg_match('/^\s+$/s', $_model))
        ) {
			throw new Exception('ERROR : '.self::MODEL_IS_EMPTY);
		}
		else{
			$_modelFile = Registry::get('modelsFolder').$_model.'Model.php';
		}
		
		
		if (file_exists($_modelFile) && is_file($_modelFile))
		{
		
			if ( is_object($_controllerClass) and  is_subclass_of($this, $_controllerClass) ){

				require Registry::get('modelsFolder').$_model.'.php';
				
				return new $_model($_controllerClass);
			}
			else{
				throw new Exception ('ERROR : '.self::NOT_OBJECT);
			}
		}
		else
		{
			throw new Exception ('ERROR : '.self::MODEL_NOT_EXIST);
			return false;
		}
	}
Controlador
Código:
public function __construct(Request_Http $request = NULL){
		try{	
			$this->_model = $this->loadModel('modelname', $this); 
		
			$this->_model->setTableName(arreglo de tablas db  ));	
		}
		catch(Exception $e)	{
			echo $e->getMessage();
		}
										  

}
Espero sus comentarios y sugerencias.

Saludos

Última edición por Fenris; 29/01/2010 a las 14:46