问题标签 [condition-system]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
293 浏览

exception-handling - 'store-value' 和 'use-value' 的语义在 Common Lisp 错误处理系统中重新启动

我一直在阅读 Peter Seibel Practical Common Lisp的优秀书籍,以解决我一直在做的与 Common Lisp 错误处理系统相关的一些研究。

虽然看了书上的解释,也试着在网上挖了一些资料,但一直无法理解andrestarts的含义和STORE-VALUE用法USE-VALUE。有人可以解释这些功能的目的是什么吗?

0 投票
2 回答
415 浏览

lisp - 是否有实施条件重启系统的书/指南

我有兴趣了解有关条件重启系统及其工作原理的更多信息。我不知道从哪里开始。我一直在查看源代码,但想知道是否有任何更高级别的指南可用。

0 投票
1 回答
170 浏览

common-lisp - 常用列表:在不同的包中使用 handler-case

我有以下 lisp 代码:

我在其中定义了一个总是失败但提供重新启动的虚拟函数:hop.

在另一个包中,在这个文件中:

我定义了从第一个包中调用函数 (hop) 的函数 (hip) 和 (dhip)。

当我调用 (dhip) 时,sbcl 向我提供了一个提示,我可以在其中选择使用我的 restart hop 重新启动:

这是我所期望的。

但是,当我调用(hip)时,(compute-restarts)未列出我的重新启动跃点,并且无法使用它:(

您知道可以做些什么来使这项工作有效吗?

谢谢,

纪尧尔

0 投票
2 回答
2267 浏览

exception - common lisp 异常处理(条件和重启)

我已经阅读了common lisp“Practical Common Lisp”异常处理章节好几天了,但是我现在对示例和解释感到很困惑,同时我尝试编写一些测试示例,但它没有像我一样工作预期,以下是我的测试样本。

  1. 条件定义

    /li>
  2. 定义打印奇数的函数

    /li>
  3. 重启功能

    /li>
  4. 重启案例

    /li>

我要做的就是打印所有奇数并跳过偶数错误,我的样本有什么问题?有人帮忙吗?提前谢谢了!!

0 投票
1 回答
147 浏览

common-lisp - 重新启动是函数“公共接口”的一部分吗?在 Common Lisp 中?

我一直在尝试通过阅读 Peter Seibel 的超越异常处理:Practical Common Lisp的条件和重启一章、Kent Pitman 的Lisp 语言家族中的条件处理以及其他一些参考资料来了解 Common Lisp 中重启和处理程序的正确使用。

根据我对重新启动的了解,它们是函数向其调用者提供的选项,用于在遇到某些条件时选择函数的行为。

那么,是否应该将重新启动视为函数“公共接口”的一部分,并相应地记录下来?

毕竟,调用者必须知道重新启动以及为了调用它们他们做了什么,对吧?我认为,摆脱调用者可能正在调用的重新启动将是一件坏事。

0 投票
0 回答
44 浏览

r - R,框架中的条件系统是什么?

我目前正在使用Advanced R研究 R 中的框架、环境。

但是我不太明白本节的最后一段。

框架还包含使用条件系统创建的退出处理程序on.exit()、重新启动和处理程序,以及return()函数完成时的上下文。这些是 R 代码无法访问的重要内部细节。

我知道统计数据,但我不擅长计算机科学。
另外,我无法按原样阅读本段。

据我了解,
1. 每个框架都包含名为on.exit().
2. 本控制器重新启动并控制状态系统。
3. 我什至无法理解如何阅读“以及return()函数完成时到哪个上下文。”。

总结一下我没有得到的是,
1.以上 3 个句子中有两个是对的吗?
2、第三句是什么意思?“哪个”指的是什么?这句话的动词是什么?
3.什么是“条件系统”?与“条件语句”相同吗?

正如我之前所说,我的cs背景很差。

提前致谢。

0 投票
1 回答
141 浏览

error-handling - Common Lisp异常后如何继续正常执行?

我想捕获unbound-variable异常并避免它们,即时创建一些变量而不会中断执行。我正在尝试在以下代码中使用handler-bindwith :invoke-restart

结果是:

但我想继续执行 second print,只需将未绑定的变量 xxxx 替换为字符串“XXXX”:

当然,我可以用 包裹语法树中的任何符号handler-bind,但我担心这会产生巨大的开销。

有没有办法捕获unbound-variable异常并使用动态生成的值而不是丢失的变量继续执行代码?

0 投票
1 回答
92 浏览

lisp - 在常见的 lisp 中,您如何在未捕获错误的地方重新启动?

这个问题实际上是关于我对重新启动缺乏了解。

在编码器中cl-json存在一个我想使用的诱人宏

with-substitute-printed-representation-restart

但可惜我不太明白怎么做。

这个

返回

这个

发出 UNENCODABLE-VALUE-ERROR 信号

我想从 cl-json 找到函数的那一点重新开始,并让它在遇到我包含在列表中的添加 lambda 时返回我选择的内容。

返回“barf”

我希望它返回

我该如何使用该宏来做到这一点?换句话说,我希望在引发错误的地方而不是在捕获错误的地方重新启动。我可以这样做吗?

0 投票
1 回答
90 浏览

lisp - 使用带有状态闭包的处理程序绑定是否有效?

这是一个符合标准的 Common Lisp 程序吗?

SBCL (2.0.5.37) 的输出是:

ABCL/CCL/ECL 的输出是:

Common Lisp 标准定义了哪种行为?


结语

这是 SBCL 中的一个错误,现在已修复

0 投票
1 回答
66 浏览

lisp - GCL中的条件如何处理?

handler-case是处理 Common Lisp 条件的关键,但 Ubuntu 18.04 上的 GCL 2.6.12 认为它是一个未定义的函数:

对于handler-bind.

GCL 手册中唯一明显的与处理条件或错误相关的功能是 GCL-specific universal-error-handler

在 GCL 中如何处理条件,最好以其他 Lisp 支持的方式?