begin process at 2012 05 29 09:00:11
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Javascript

 > 

Archives

 > 

AU SECOURS !!!

 > 

gestion exception "stack overflow at line : 0"


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

gestion exception "stack overflow at line : 0"

vendredi 26 mars 2004 à 16:54:34 | gestion exception "stack overflow at line : 0"

ellandebasque

Bonjour,
je fais un prog qui affiche des images à partir d'un répertoire donné par le clic sur le treeview. Tout fonctionne bien, sauf lorsque l'on clique comme un malade sur l'arbre, au bout d'un moment le message d'erreur "stack overflow at line : 0". J'utilise un code qui me permet de dire que ce débordement de pile n'est pas dû au nombre d'images à afficher ni à la taille du code qu'il a à mettre en mémoire (n fois). Je pense plus à un pb de gestion des événements. Ceci dit comment régler ce pb ? Comment lever cette exception ? (try catch sur tout le code ?)

Merci de m'aider.
De
samedi 27 mars 2004 à 07:48:03 | Re : gestion exception

bultez

Membre Club
Bonjour
ce genre de problème est souvent du à une
fonction que l'on appelle de manière récursive
indéfiniment. je pencherais donc plutôt pour
rechercher une erreur de logique de ce type.
maintenant un petit bout de code nous
aiderait.
Cordialement. Bul.
lundi 29 mars 2004 à 09:50:23 | Re : gestion exception

ellandebasque

Voici ma fonction permmettant la gestion de l'affichage des images. Cette fonction est appelée sur l'événement clic sur l'arbre. J'ajoute la fonction permettant l'affichage du "picto", qui est appelée depuis cette fonction.

// permet d'afficher les picto d'un répertoire
// création à la volée d'un tableau dans lequel sera affiché les picto
function PrintPictoFromFolder(folder)
{
window.parent.SetWaitCursor(true);

var tabExtensions = getExtensionSelected();

// indice de la colonne courante du tableau
var col = 0;

// largeur/hauteur de la cellule --> Dans le fichier .css

// CellSpacing entre les cellules
var iCellSpacing = "5px";

// objet du tableau
var oCell; // cellule
var oRow; // ligne

while (window.parent.feuillegauche.TreeView.Nodes(window.parent.feuillegauche.TreeView.getAttribute("selectedNodeIndex")).key == folder.Path)
{
var iPictoParCol = getMaxPictoByLine();

viderFrame();
var oFiles = folder.Files;
enumFiles = new Enumerator(oFiles);

var oTable = document.createElement("table");
oTable.style.border = 1;
oTable.cellspacing = iCellSpacing;
oTable.align = "center";
oTable.id = "tImages";
document.body.appendChild(oTable);

var oTBody = document.createElement("tbody");
oTBody.vAlign = "middle";
oTable.appendChild(oTBody);

// variable qui va servir à savoir si l'on affiche une image ou pas
// si on en affiche pas, on met une image nous même pour dire qu'il n'y en a pas
var compteurImages = 0;

for (; !enumFiles.atEnd(); enumFiles.moveNext())
{
setTimeout("", 50);

if (window.parent.feuillegauche.TreeView.Nodes(window.parent.feuillegauche.TreeView.getAttribute("selectedNodeIndex")).key != folder.Path)
{
break;
}
File = enumFiles.item();
if (testExtension(File, tabExtensions) == true)
{
compteurImages++;

// cas où on a pas encore crée de ligne (début de la création)
if (col == 0)
{
oRow = document.createElement("tr");
oTBody.appendChild(oRow);
col++;
}
else
{
// si on arrive au max de picto pour la ligne, on crée une autre ligne
if (col == iPictoParCol + 1)
{
col = 1;
oRow = document.createElement("tr");
oTBody.appendChild(oRow);
}
}

oCell = document.createElement("td");
if (rAffichageGd.value == "true")
oCell.className = "clsCellNormalGd";
else
oCell.className = "clsCellNormalPt";

oCell.setAttribute("cell", oCell);
oCell.attachEvent('onclick', fnOnClickCell);
oCell.attachEvent('ondblclick', fnDblClickCell);
oCell.vAlign = "middle";
oRow.appendChild(oCell);

// on cherche à savoir si on affiche l'extension des fichiers
var bAfficherPicto;
if (bAfficherPicto != true && bAfficherPicto != false)
bAfficherPicto = true;
else
bAfficherPicto = window.dialogArguments.bAfficheExtension;

if (rAffichageGd.value == "true")
var iTailleImage = "100";
else
var iTailleImage = "25";

// ajout d'une image
iImg = new Image;
iImg.src = File.Path;
AttendreFin(iImg);
pictoCreate(iImg, oCell, bAfficherPicto, iTailleImage);

col++;
}
}

window.parent.WndUtl.SendDbgMessage( "Dans PrintPictoFolder : " + window.parent.feuilledroite.document.body.getAttribute("affichageCommence") + "\n" );
if (window.parent.feuillegauche.TreeView.Nodes(window.parent.feuillegauche.TreeView.getAttribute("selectedNodeIndex")).key == folder.Path)
{
break;
}
else
{
if (fso.FolderExists(window.parent.feuillegauche.TreeView.Nodes(window.parent.feuillegauche.TreeView.getAttribute("selectedNodeIndex")).key))
folder = fso.getFolder(window.parent.feuillegauche.TreeView.Nodes(window.parent.feuillegauche.TreeView.getAttribute("selectedNodeIndex")).key);
}
}

if (compteurImages == 0)
{
document.body.style.backgroundImage = "url(Images/pasdimage.gif)";
document.body.style.backgroundRepeat = "no-repeat";
document.body.style.backgroundPosition = "center center";
}

//window.parent.feuilledroite.document.body.setAttribute("affichageCommence", false);
window.parent.SetWaitCursor(false);
bCancel = false;
}

// ajoute un picto à la cellule
function pictoCreate(iImg, oCell, bAfficherExtension, iTailleImage)
{
var oTable = document.createElement("table");
oCell.appendChild(oTable);

var oTbody = document.createElement("tbody");
oTbody.className = "clsTBodyLibNormal";
oTable.appendChild(oTbody);

// ligne du tableau qui contiendra l'image
var oTr, oTd1, oTd2;
oTr = document.createElement("tr");
// on fixe la taille de ce TR pour éviter que l'image ne bouge
if (rAffichageGd.value == "true")
oTr.className = "clsTrImageGd";
else
oTr.className = "clsTrImagePt";
oTbody.appendChild(oTr);

oTd1 = document.createElement("td");
oTd1.vAlign = "middle";
oTd1.align = "center";
oTr.appendChild(oTd1);

var iWidth = parseInt(iImg.width);
var iHeight = parseInt(iImg.height);

var oImage = document.createElement("<v:image>");

oImage.src = iImg.src;
oImage.style.visibility = "visible";
oImage.border = "0";

if (iWidth > iHeight)
{
oImage.style.width = iTailleImage;
oImage.style.height = (iHeight * iTailleImage) / iWidth;
}
else
{
oImage.style.height = iTailleImage;
oImage.style.width = (iWidth * iTailleImage) / iHeight;
}

//oImage.title = getAffichageFileName(File);
oTd1.appendChild(oImage);

// nouvelle ligne pour mettre l'intitulé de l'image
oTr = document.createElement("tr");
oTbody.appendChild(oTr);

oTd2 = document.createElement("td");
oTd2.vAlign = "bottom";
oTd2.align = "center";
oTr.appendChild(oTd2);

var oDiv = document.createElement("div");
if (rAffichageGd.value == "true")
oDiv.className = "clsDivNormalGd";
else
oDiv.className = "clsDivNormalPt";
oDiv.title = getAffichageFileName(File);
oTd2.appendChild(oDiv);

var noBr = document.createElement("noBR");
noBr.className = "clsNoBRnormal";
noBr.innerText = getAffichageFileName(File);
oDiv.appendChild(noBr);
window.parent.WndUtl.SendDbgMessage( "PictoCreate()\n" );
}


De
lundi 29 mars 2004 à 09:52:56 | Re : gestion exception

ellandebasque

Merci de beaucoup pour toute aide.
De
lundi 29 mars 2004 à 09:53:23 | Re : gestion exception

ellandebasque

Merci de beaucoup pour toute aide.
De
lundi 29 mars 2004 à 09:53:37 | Re : gestion exception

ellandebasque

Merci de beaucoup pour toute aide.
De
lundi 29 mars 2004 à 09:55:05 | Re : gestion exception
mardi 30 mars 2004 à 15:24:00 | Re : gestion exception

bultez

Membre Club
Bonjour
un petit bout de code
un extrait simplifié au maximum,
[ là, ça ne donne pas envie de regarder ]
et ça permet parfois de trouver la
solution, l'erreur, tout seul.
Cordialement. Bul.


Cette discussion est classée dans : gestion, exception, at, stack, overflow


Répondre à ce message

Sujets en rapport avec ce message

problème avec stack overflow at line... [ par thunderbolt ] Bonjour tout le monde, j'ai un petit problème...Il m'apparait une fenêtre d'alerte dans laquelle est marqué le message :"Stack overlow at line 21"...T verifier si a est divisible par b et stack overflow [ par gatita_dev ] Rebonjour, je vois que c pas ma journée aujourd'hui, encore un problème.je veux vérifier si un nombre a est divisible par b, donc j'ai utilisé le fame pb de stack overflow [ par kaskran ] salut, je travaille sous asp.net, et je veux utiliser a l'aide de javascript une bete fonction contenant un "confirm" pour confimer un effacement. Cep Gestion dates [ par papuli_a ] Bonjour,Je travail sur un module de reservation de chambers pour un hotel.Le module fait appel à un fichier javascript afin d?afficher les jours de ré gestion de serveurs [ par 123456789123 ] salut .je voudrai ajouter a mon site un module de gestion de serveur de jeux ( steam ) mais le probleme , c'est que je n'y connai absolument rien ...s Le logiciel de gestion de projet PSN et javascript [ par macaro ] salutJ'aimerais savoir si quelqu'un a déjà utilisé javascript sur ce logiciel et des sites pour pour m'aider en javascriptMerci d'avance Macaro</font Gestion d'erreur [ par hasnaa ] j'aimerai savoir comment on peut vérifier les données saisies dans un champs s'ils sont numérique ou non, tenant compte que le champs est un numéro de Gestion d'images en javascript ... [ par Alain62 ] Voila, dans ma page internet, j'ai une balise toute simple : et je voudrai que lorsque l'utilisateur clique sur cette image, celle-ci change,(pour all Gestion des cookies [ par Jackboy ] J'aimerai avoir un petit truc, dans mon site je créer un cookie pour savoir si l'utilisateur a voter a mon sondage et si oui, il ne peut plus voter, m gestion de l'affichage d'un bouton par javascript [ par satd ] Est-il possible de gérer le placement d'un bouton sur une page HTML avec javascript, de sorte que lorsque javascript est inactivé le bouton n'apparait


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales