- 829 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 04:02:22.74 ]
- catchの各formを評価している最中にthrowされると、throwで指定した値がcatchの戻り値になる。
なので、(throw 'c1 "x = 0")によって、catchの戻り値が"x = 0"になる。以降のformは評価されない。 catchの戻り値は、件のコードでは単に捨てられるようになっているので、出力もされない。 catchの後に「hoge end」を出力して、そのまま終了する。 つまり、throwの次に実行されるのは(format t "hoge end~%")。 www.lispworks.com/documentation/HyperSpec/Body/s_catch.htm というか、普通はcatchやthrowを直接使ったりせず、より上位の仕組みのコンディションを使う。
|

|