<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Existe-t-il un moyen de sortir proprement d'une fonction ?Quelque chose comme le casser() fonction dans une boucle for.J'ai essayé lancer() mais cela arrête tout le script JSL.
Pourriez-vous utiliser retour() ?
J'inclus souvent des expressions sujettes aux erreurs dans Try() sans Throw(). Le placement de Try() - dans la fonction ou "autour" de l'appel de fonction - dépend si je veux seulement échapper des parties de la fonction ou l'échapper complètement en cas d'exception. Throw() arrête l'exécution et j'ai tendance à l'utiliser principalement pour le débogage.
Comparez ces exemples et leur résultat :
//Try() à l'intérieur de la fonction échappe les parties choisies de la fonction, l'exécution du script continue.
exqr = Fonction ( { X } ,
x2 = Essayer ( X * X , « Erreur, passez à autre chose ! ») ;
Montrer ( "Afficher ceci même si x est NaN" ) ;
x2 ;
) ;
m² = exqr ( "q" ) ;
Montrer ( m² , "l'échappement de la fonction a échoué, mais le script a continué" ) ;
//Try() entourant l'appel de fonction échappe à la fonction, l'exécution du script continue.
exqr = Fonction ( { X } ,
x2 = X * X ;
Montrer ( "Ne pas afficher si x est NaN" ) ;
x2 ;
) ;
m² = Essayer ( exqr ( "q" ) ) ;
Montrer ( m² , "Fonction d'échappement réussie !") ;
//Try() with Throw() échappe à la fonction et au script.
exqr = Fonction ( { X } ,
x2 = Essayer ( X * X , Lancer ( "Erreur, arrêtez-vous ici ! : " || Carboniser ( exception_msg ) ) ) ;
Montrer ( "Ne pas afficher si x est NaN" ) ;
) ;
m² = exqr ( "q" ) ;
Montrer ( m² , "script arrêté !") ;
J'obtiens une erreur lorsque j'essaie de quitter une fonction avec return().
J'obtiens l'erreur lorsque je crée une boîte à boutons
bb = Button Box("SpecsAuto")puis attachez une fonction
bb << Set Function( Return() )
puis cliquez sur la case.
Voici un code de démonstration pour reproduire l'erreur :
nw = New Window("Win1");
nw << Append(bb = Button Box("SpecsAuto"));
bb << Set Function(
Print("A");
Return();
Print("B");
);
bb << Click();

set function() fonctionne également si aucune fonction n'est fournie - comme dans votre script.
Pour utiliser la magie de return() , vous devez le mettre à l'intérieur d'une fonction :
nw = New Window("Win1");
nw << Append(bb = Button Box("SpecsAuto"));
bb << Set function(Function({},
Print("A");
Return();
Print("B");)
);
bb << Click();