读书人

Common Lisp情况系统(condition syste

发布时间: 2012-12-20 09:53:21 作者: rapoo

Common Lisp状况系统(condition system)的学习和理解
? 状况系统是这样的:底层代码产生状况---》中层代码制定多种恢复策略-》上层代码处理并选择中层的恢复策略

? 将从错误中恢复的代码与决定选择如何恢复进行分离,也就是说,错误恢复方法在底层提供了,选择哪个进行恢复的选择权交给高层函数。

? 状况系统使得我们在写底层功能函数时只关注函数功能即要完成的事情,而对于错误的恢复方法都在中下层提供,高层拥有最后的选择权。另外,状况系统使得我们在遇到错误的时候不必转到调试器而停止,而是进入预想的错误处理的方法中。

? 以下是处理函数对抛出的error的简单的处理方式:

  
((12 "even") (2 "even") (14 "even") (4 "even") (16 "even") (6 "even") (18 "even") (8 "even") (20 "even") (10 "even"))

((1 "odd") (2 "even") (3 "odd") (4 "even") (5 "odd") (6 "even") (7 "odd") (8 "even") (9 "odd") (10 "even"))

可见,对于同一种condition,我们在不同的高层函数中选择不同的策略进行处理,得到了不同的结果。

读书人网 >系统运维

热点推荐