首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌入式ECL lisp错误处理

嵌入式ECL lisp错误处理
EN

Stack Overflow用户
提问于 2011-10-13 22:27:02
回答 1查看 639关注 0票数 1

任务:在我的项目中嵌入ECL lisp,设置错误处理和详细的错误报告(在哪里发生,错误的种类等)

我试着这样做:

代码语言:javascript
复制
cl_def_c_function_va(
    c_string_to_object("SYSTEM:UNIVERSAL-ERROR-HANDLER"),
    LispErrorHandler);

ECL没有关于其嵌入式API的文档,也没有关于错误处理的文档...

你能建议一下如何实现它吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-14 05:30:24

没有全局错误处理程序,因为这不是Common Lisp哲学。如果您想要处理错误,请使用lisp方式。

1)创建一个使用HANDLER-CASE或HANDLER-BIND来设置适当的错误处理程序并捕获要计算的表单周围的错误的函数。就像这样

(DEFUN MY-EVAL (FORM) (处理程序-CASE (EVAL FORM) (错误(C) ...) )(MY-ERROR (C) ...)

这个函数可以在你的C代码中定义并调用。

2)使用ECL创建的捕获所有错误的函数。最重要的是si_safe_eval(表单、环境、error_value)。它在一个环境(通常是Cnil)中评估lisp表单,如果遇到一些错误,则返回其输出或ERROR_VALUE。

使用一种或另一种技术的一些示例:http://thread.gmane.org/gmane.lisp.ecl.general/5365 (第二条消息) http://thread.gmane.org/gmane.lisp.ecl.general/8526/focus=8529

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7755661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档