gpt4 book ai didi

error-handling - 嵌入式 ECL lisp 错误处理

转载 作者:太空宇宙 更新时间:2023-11-03 18:50:42 24 4
gpt4 key购买 nike

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

我试过这样做:

cl_def_c_function_va(
c_string_to_object("SYSTEM:UNIVERSAL-ERROR-HANDLER"),
LispErrorHandler);

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

你能建议如何实现吗?

最佳答案

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

1) 创建一个函数,该函数使用 HANDLER-CASE 或 HANDLER-BIND 设置适当的错误处理程序并捕获围绕要评估的表单的错误。有点像

(DEFUN MY-EVAL (FORM) (Handler-CASE (EVAL FORM) (错误(C)...) (我的错误(C)...) ...))

此函数可以在您的 C 代码中定义并调用。

2) 使用 ECL 创建的函数来捕获所有错误。最重要的是 si_safe_eval(form, environment, error_value)。它在 ENVIRONMENT(通常为 Cnil)中评估 lisp FORM 并返回其输出或 ERROR_VALUE(如果出现错误)。

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

关于error-handling - 嵌入式 ECL lisp 错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7755661/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com