|
throw. переводит выполнение в
секцию catcht. явного определения,
приведшего к исполнению этого кода. Если соответствующая
секция catcht. отсутствует, выходит в интерактивный режим.
|
main=: 3 : 0
try.
sub y
catcht.
select. type_jthrow_
case. 'aaaa' do. 'throw aaaa'
case. 'bbb' do. 'throw bbb'
case. 'cc' do. 'throw cc'
case. do. throw. NB. к catcht. следующего уровня (если есть)
end.
end.
)
sub=: 3 : 0
if. y<0 do. type_jthrow_=: 'aaaa' throw. end.
if. y<4 do. type_jthrow_=: 'bbb' throw. end.
if. y<8 do. type_jthrow_=: 'cc' throw. end.
(":y),' not thrown'
)
main _4
throw aaaa
main 1
throw bbb
main 5
throw cc
main 88
88 not thrown
Как иллюстрирует этот пример, throw. может передать
информацию в catcht. блок при
помощи глобального имени в некотором пространстве имен.