Añadido varios throw exception para la gestion de errores