J. Errors and Suspensions

>> << Ndx Usr Pri Phr Dic Rel Voc !: wd Help Dictionary

J. Errors and Suspension
Execution of a sentence suspends when an error occurs, and an error message and context information are then displayed. Four blanks indicate where parsing stopped. Suspension may occur in immediate execution, in the execution of a script file, or in the execution of a user-defined named verb, adverb, or conjunction, as illustrated by the following examples:
Immediate execution

       2+'a'
    |domain error
    |   2    +'a'

Execution of a script file

       t=: '2*3',(10{a.),'2+''a''',(10{a.),'2+3'
       t                          A script
    2*3
    2+'a'
    2+3

       t 1!:2 <'test'             Write script file

       0!:011 <'test'             Execute file, continue on error, display (011)
    2*3
    6

       2+'a'
       2+3
    5

       0!:001 <'test'             Execute file, stop on error, display (001)
       2*3
    6

       2+'a'
    |domain error
    |   2    +'a'
    |[-2]

User-Defined Verb

       g=: 3 : ('1+y.' ;  ':' ; '2+x.+y.')

       3+g 'a'
    |domain error: g
    |   1    +y.

       13!:0 (1)                  Enable suspension
       3+g 'a'
    |domain error: g
    |   1    +y.
    |g[0]

          y.                      Six-space indent indicates suspension
    a

          y.=. 12                 Redefine local value of y.

          13!:4 ''                Resume execution at the current line
    16                            Result using redefined value of y.

Sentences can be executed in the suspended environment, local values can be accessed, and execution can be resumed. Errors cause suspension only if suspension is enabled (by the phrase`13!:0]1`).`` When suspension is in effect, the input prompt is six spaces.
Suspension and debugging facilities are controlled by the`` `13!:``` family as described in Appendix A.

>> << Ndx Usr Pri Phr Dic Rel Voc !: wd Help Dictionary