<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />¿Hay una manera de saltar limpiamente de una función? Algo como el descanso() Función en un bucle for. He intentado lanzar() pero eso detiene todo el script JSL.
A menudo encierro expresiones propensas a errores en Try () sin Throw (). La ubicación de Try (), dentro de la función o "alrededor de" la llamada a la función, depende de si solo quiero escapar de partes de la función o escapar por completo en caso de una excepción. Throw () detiene la ejecución y tiendo a usarlo principalmente para la depuración.
Compara estos ejemplos y su salida:
// Try () dentro de la función escapa a las partes elegidas de la función, la ejecución del script continúa.
exsqr = Función ( { X } ,
x2 = Tratar ( X * X , "¡Error, sigue adelante!" ) ;
Show ( "Mostrar esto incluso si x es NaN" ) ;
x2 ;
) ;
cuadrado = exsqr ( "q" ) ;
Show ( cuadrado , "Falló la función de escape, pero el script continuó" ) ;
// Try () encierra la función call escapes function, la ejecución del script continúa.
exsqr = Función ( { X } ,
x2 = X * X ;
Show ( "No muestres esto si x es NaN" ) ;
x2 ;
) ;
cuadrado = Tratar ( exsqr ( "q" ) ) ;
Show ( cuadrado , "la función de escape tuvo éxito!" ) ;
// Try () with Throw () escapa la función y el script.
exsqr = Función ( { X } ,
x2 = Tratar ( X * X , Lanzar ( "Error, para aquí !:" || Carbonizarse ( exception_msg ) ) ) ;
Show ( "No muestres esto si x es NaN" ) ;
) ;
cuadrado = exsqr ( "q" ) ;
Show ( cuadrado , "el script se detuvo!" ) ;
Recibo un error al intentar salir de una función con return().
Me sale el error cuando hago un cuadro de botones
bb = Button Box("SpecsAuto")luego adjunte una función
bb << Set Function( Return() )
Luego haga clic en el cuadro.
Aquí hay un código de demostración para reproducir el error:
nw = New Window("Win1");
nw << Append(bb = Button Box("SpecsAuto"));
bb << Set Function(
Print("A");
Return();
Print("B");
);
bb << Click();

La función set() también funciona si no se proporciona ninguna función, como en su script.
Para utilizar la magia de return() , debes ponerlo dentro de una función:
nw = New Window("Win1");
nw << Append(bb = Button Box("SpecsAuto"));
bb << Set function(Function({},
Print("A");
Return();
Print("B");)
);
bb << Click();