Bug sur un appel de fonction
Bonsoir à vous,
je développe une application web avec l'API ArcGIS for flex (1.3).
Cependant je rencontre un problème assez inédit :
Mon code bloque sur l'appel d'une fonction avec pour unique paramètre une variable String.
Je précise que cette variable String a été testée :
- pas de caractère invisible.
- type correct
surtout le contenu de cette String est celui attendu.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| private function getServices():Array{
var array:Array = new Array();
var layer:Layer;
var hasGraphicsLayer:Boolean = false;
for(var i:Number = 0; i<this.configData.configMap.length ;i++){
try{
layer = getMainServiceLayer(this.configData.configMap[i].label);
}catch (e:Error){
Alert.show(e.message);
}
if(layer.visible) {
if(layer is GraphicsLayer) {
hasGraphicsLayer = true;
} else {
array.push(this.configData.configMap[i]);
}
}
}
if(hasGraphicsLayer) array.push({label:dynamicLayerGroupName}) ;
return array;
} |
Cette fonction fait appel à la fonction qui plante : getMainServiceLayer(st:String) qui a pour code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
private function getMainServiceLayer(st:String):Layer{
var layer:Layer = null;
for (var i:Number =0;i<theMap.layerIds.length;i++)
{
if (theMap.layerIds[i].toString() == st)
{
layer = theMap.getLayer(theMap.layerIds[i]);
break;
}
}
return layer;
} |
J'ai bien sûr essayé des Alert à chaque étape, rien ni fait le code s'arrête mystérieusement lors du dernier tour de l'appel de la fonction getMainServiceLayer(st:String). Après avoir essayé toutes sortes d'Alert, j'ai décidé de placer un try / catch sur l'appel de la fonction pour comprendre et récupérer l'erreur.
Résultat, le try est exécuté en buggant mais ne lève pas d'erreur dans le catch.
Quelqu'un aurait-il une idée de ce que cela pourrait-il être ?
Quelqu'un a déjà rencontré ce bug ?
Merci d'avance !