无论如何,在共同的lisp中“探测”一个方法

时间:2010-06-10 22:50:56

标签: common-lisp

我的应用程序允许用户间接创建自己的方法,稍后我需要参考这些方法。我想知道是否有一种方法(用于错误检查)测试方法是否存在而不尝试执行它。如果我只是尝试调用该方法并且它不存在,这将使我的应用程序崩溃。

3 个答案:

答案 0 :(得分:7)

答案 1 :(得分:5)

它不会真正崩溃,但会发出信号。如果未处理此条件,则将输入调试器。有关如何使用条件系统的信息,请参阅CLHS Section 9.1

无论如何,您只需使用fboundp进行检查。

答案 2 :(得分:1)

一种解决方案是提供“无所事事”的GF方法,在类T(所有类的超类)上进行调度。对于你正在实现方法的所有GF,你需要这个。为了审计目的,也可以让“无所事事”方法记录一些数据,也许是每个参数的类。