<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />C'è un modo per saltare in modo pulito da una funzione?Qualcosa come il rottura() funzione in un ciclo for.ho provato gettare() ma questo interrompe l'intero script JSL.
Potresti usare ritorno() ?
Racchiudo spesso espressioni soggette a errori in Try() senza Throw(). Il posizionamento di Try() - all'interno della funzione o "intorno" alla chiamata di funzione - dipende se voglio solo sfuggire a parti della funzione o evitarlo completamente in caso di un'eccezione. Throw() interrompe l'esecuzione e tendo a usarlo principalmente per il debug.
Confronta questi esempi e il loro output:
//Try() all'interno della funzione sfugge alle parti scelte della funzione, l'esecuzione dello script continua.
exsqr = Funzione ( { X } ,
x2 = Tentativo ( X * X , "Errore, vai avanti!") ;
Spettacolo ( "Mostra questo anche se x è NaN" ) ;
x2 ;
) ;
mq = exsqr ( "Q" ) ;
Spettacolo ( mq , "la funzione escape non è riuscita, ma lo script è continuato" ) ;
//Try() che racchiude la funzione di chiamata di escape, l'esecuzione dello script continua.
exsqr = Funzione ( { X } ,
x2 = X * X ;
Spettacolo ( "Non mostrarlo se x è NaN" ) ;
x2 ;
) ;
mq = Tentativo ( exsqr ( "Q" ) ) ;
Spettacolo ( mq , "funzione escape riuscita!") ;
//Try() con Throw() sfugge alla funzione e allo script.
exsqr = Funzione ( { X } ,
x2 = Tentativo ( X * X , Gettare ( "Errore, fermati qui!: " || Car ( messaggio_eccezione ) ) ) ;
Spettacolo ( "Non mostrarlo se x è NaN" ) ;
) ;
mq = exsqr ( "Q" ) ;
Spettacolo ( mq , "sceneggiatura interrotta!") ;
Ricevo un errore quando provo a uscire da una funzione con return().
Ricevo l'errore quando creo una casella di pulsanti
bb = Button Box("SpecsAuto")quindi allega una funzione
bb << Set Function( Return() )
quindi fare clic sulla casella.
Ecco il codice demo per riprodurre l'errore:
nw = New Window("Win1");
nw << Append(bb = Button Box("SpecsAuto"));
bb << Set Function(
Print("A");
Return();
Print("B");
);
bb << Click();

set function() funziona anche se non viene fornita alcuna funzione, come nel tuo script.
Per utilizzare la magia di return() , è necessario inserirla all'interno di una funzione:
nw = New Window("Win1");
nw << Append(bb = Button Box("SpecsAuto"));
bb << Set function(Function({},
Print("A");
Return();
Print("B");)
);
bb << Click();