J. 錯誤與暫停

當發生錯誤時,指令終止執行,且顯示錯誤訊號與內容資訊。 四個空白指示剖析暫停處。暫停可發生於及時執行、指令稿檔執行或者使用者定義之動詞、副詞或連接詞的執行,如下面例子所示:

即時執行

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

指令稿檔的執行

   t=: '2*3',(10{a.),'2+''a''',(10{a.),'2+3'
   t                          一指令稿檔
2*3
2+'a'
2+3

   t 1!:2 <'test'             撰寫指令稿檔

   0!:011 <'test'             執行檔案,錯誤發生不暫停,顯示(011)
2*3
6

   2+'a'
   2+3
5

   0!:001 <'test'             執行檔案,錯誤發生時暫停,顯示 (001)
   2*3
6

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

使用者定義之動詞

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

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

   13!:0 (1)                  啟動暫停開關
   3+g 'a'
|domain error: g
|   1    +y.
|g[0]

      y.                      六空白縮頭代表暫停
a

      y.=. 12                 重新定義 y的區域值

      13!:4 ''                採用新定義的 y值,以回復暫停指令的執行
16                            
在暫停的狀況下,可以執行指令句,可使用區域變數,且暫停的執行可以回復。 只有啟動暫停開關 (由片語 13!:0]1)錯誤才會導致執行的暫停。當暫停指令生效,輸入提示為六個空白。

暫停與除錯指令由13!控制;此以指令群見附錄 A。


下個前個字彙索引主選單