Herramientas de usuario

Herramientas del sitio


es:manual:spsl

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
es:manual:spsl [2023/11/16 10:14] rootes:manual:spsl [2023/11/16 10:28] (actual) – [@OnError skip / @OnError recover] root
Línea 189: Línea 189:
  
 ==== @OnError skip / @OnError recover ==== ==== @OnError skip / @OnError recover ====
-Esta //sentencia de control// se usa en combinación con la //sentencia de control// ''@OnError recover'' en las [[es:manual:items:externosficherocompuestas|preguntas compuestas con fichero]]. Cuando en un script se establece el modo ''@OnError skip'', si se produce un error en la ejecución de alguna de las //sentencias de prueba// el script no se interrumpe, sino que el flujo de control se reinicia y salta hasta encontrar la siguiente instrucción ''@OnError recover''. Por ejemplo, supongamos el siguiente script:+Esta //sentencia de control// se usa en combinación con la //sentencia de control// ''@OnError recover''. Cuando en un script se establece el modo ''@OnError skip'', si se produce un error en la ejecución de alguna de las //sentencias de prueba// el script no se interrumpe, sino que el flujo de control se reinicia y salta hasta encontrar la siguiente instrucción ''@OnError recover''. Por ejemplo, supongamos el siguiente script:
  
     @OnError skip     @OnError skip
Línea 203: Línea 203:
    ...    ...
  
-La ejecución comienza lanzando la instrucción ''instr1''. Si la ejecución de ''instr1'' da como resultado ''res1'' el script de ejecución continúa con la instrucción ''instr2''; pero si el resultado de la ejecución de ''instr1'' no es el esperado, las instrucciones siguientes ''instr2'' ''instr3'' no se ejecutarán. Al encontrar la //sentencia de control// ''@OnError recover'', el proceso se recupera, ejecutando ahora la instrucción ''instr4''. Nuevamente si esta instrucción da un resultado correcto, el proceso seguira con la instrucción siguiente, pero si la ejecución de  +La ejecución comienza lanzando la instrucción instr<sub>1</sub>. Si la ejecución de instr<sub>1</sub> da como resultado res<sub>1</sub> el script de ejecución continúa con la instrucción instr<sub>2</sub>; pero si el resultado de la ejecución de instr<sub>1</sub> no es el esperado, las instrucciones siguientes instr<sub>2</sub> instr<sub>3</sub> no se ejecutarán. Al encontrar la //sentencia de control// ''@OnError recover'', el proceso se recupera, ejecutando ahora la instrucción instr<sub>4</sub>. Nuevamente si esta instrucción da un resultado correcto, el proceso seguirá con la instrucción siguiente, pero si la ejecución de  
-''instr4'' da error, la siguiente instrucción a ejecutar será ''instr6''.+instr<sub>4</sub> da error, la siguiente instrucción a ejecutar será instr<sub>6</sub>.
  
-Notese que la //sentencia de control// ''@OnError recover'' no tendría ningún efecto si previamente no es hubiera establecido la //sentencia de control// ''@OnError skip''.+Nótese que la //sentencia de control// ''@OnError recover'' no tendría ningún efecto si previamente no es hubiera establecido la //sentencia de control// ''@OnError skip''.
  
 === Preguntas compuestas === === Preguntas compuestas ===
  
-En el caso de la ejecución de una pregunta compuesta de ficheros, Siette compone el script de ejecución añadiendo en la cabecera de cada subpregunta dos //sentencias de control//, una de tipo ''@Answer label'' y otra ''@OnError recover'', por lo que si se ha definido previamente el modo ''@OnError skip'', no es necesario incluir manualmente ''@OnError recover'', y el salto en la ejecución funciona entre los script de las subpreguntas. Por ejemplo, supongamos el siguiente script:+Un caso especial y muy frecuente del uso de estas //sentencias de control// es la ejecución de [[es:manual:items:externosficherocompuestas|preguntas compuestas con fichero]]. Siette compone el script de ejecución añadiendo en la cabecera de cada subpregunta dos //sentencias de control//, una de tipo ''@Answer label'' y otra ''@OnError recover'', por lo que solo sería necesario definir manualmente la //sentencia de control//  ''@OnError skip''. En este caso, no es necesario incluir manualmente ''@OnError recover'' ya que se añade automáticamente. El salto en la ejecución funcionará entre los (sub)scripts de las subpreguntas. Por ejemplo, supongamos que Siette ha compuesto el siguiente script:
  
     @OnError skip     @OnError skip
 +    instr(0,1)        == res(0,1)   -> A(0,1)   : B(0,1)
 +    ...
 +   
     @Answer label(1)      @Answer label(1) 
     @OnError recover      @OnError recover 
es/manual/spsl.1700129663.txt.gz · Última modificación: 2023/11/16 10:14 por root

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki