throw ( n -- )
publication: 15 mars 2022 / mis à jour 2 août 2022
vocabulaire: forth
GénÚre une erreur si n pas égal à zéro.
Si les bits de n ne sont pas nuls, extraie l'exception en tĂȘte de la pile d'exceptions, ainsi que tout ce qui se trouve sur la pile de retour au-dessus de ce cadre. Ensuite, restaure la spĂ©cification de la source d'entrĂ©e utilisĂ©e avant le CATCH correspondant et ajuste les profondeurs de toutes les piles dĂ©finies par cette norme afin qu'elles soient identiques aux profondeurs enregistrĂ©es dans le cadre d'exception (i est le mĂȘme nombre que le i dans les arguments d'entrĂ©e au CATCH correspondant), place n au-dessus de la pile de donnĂ©es et transfĂšre le contrĂŽle Ă un point juste aprĂšs le CATCH qui a poussĂ© ce cadre d'exception.
Exemple:
: could-fail ( -- char ) KEY DUP [CHAR] Q = IF 1 THROW THEN ; : do-it ( a b -- c) 2DROP could-fail ; : try-it ( --) 1 2 ['] do-it CATCH IF ( x1 x2 ) 2DROP ." There was an exception" CR ELSE ." The character was " EMIT CR THEN ; : retry-it ( -- ) BEGIN 1 2 ['] do-it CATCH WHILE ( x1 x2) 2DROP ." Exception, keep trying" CR REPEAT ( char ) ." The character was " EMIT CR ;
Legal: site web personnel sans commerce / personal site without seling