lisp里的状况处理

简介: 首先lisp里面的异常处理真正的名字是状况系统condition system,下面是这个condition system的演示: 最简单的 [1]> (/ 1 0) *** - /: division by zero The following restarts are

lisp里面的异常处理采用的是condition system,下面是这个condition system的演示:



最简单的


[1]> (/ 1 0)

*** - /: division by zero
The following restarts are available:
ABORT          :R1      Abort main loop
Break 1 [2]> :R1

[3]>


这个是被零除状况,运行时发现这个状况,提示有ABORT重启可以选择,选择这个重启退出.下面有添加自定义的重启的例子.


捕捉状况并处理

[3]> (handler-case (/ 1 0) (error () "Dived by 0"))
"Dived by 0"


添加自定义启动

[4]> (restart-case (/ 1 0) (r () "Restart R") (rr () "Restart RR") )

*** - /: division by zero
The following restarts are available:
R              :R1      R
RR             :R2      RR
ABORT          :R3      Abort main loop
Break 1 [5]> :R2
"Restart RR"



这里定义了R RR这两个重启,lisp可以定义多个重启,对一种状况可以采用多种恢复方案.


状况处理选择自定义启动


Break 2 [8]> (handler-bind ((error #'(lambda (c) (invoke-restart 'rr)))) (restart-case (/ 1 0) (r () "Restart R") (rr () "Restart RR")))
"Restart RR"








目录
相关文章
|
2月前
|
监控 安全
Prolog 语言在员工电脑监控软件中的潜力
在数字化办公时代,员工电脑监控软件对企业管理至关重要,有助于提升效率与保障信息安全。Prolog 语言作为逻辑编程语言,具备强大的推理能力,可用于制定规则并自动判断员工行为是否合规,还能分析使用习惯及检测异常行为,从而提高管理效率并确保安全。随着技术进步,Prolog 在该领域的应用将愈发重要。
27 10
|
2月前
|
Rust 监控 安全
Rust 对公司网络监控软件安全性的提升
在数字化时代,公司网络监控软件的安全性至关重要。Rust 语言凭借其内存安全机制、并发安全特性和严格的类型检查,有效防止内存管理错误、数据竞争及代码注入等问题,为网络监控软件提供多维度的安全保障,助力企业构建更安全可靠的监控体系。
57 3
|
3月前
|
Rust 安全 JavaScript
探索Rust在系统编程领域的前景:虚拟机和编译器开发的新篇章
【8月更文挑战第31天】在系统编程领域,性能与安全性至关重要。Rust作为一种新兴语言,凭借其独特的内存安全和并发特性,正逐渐成为虚拟机和编译器开发的首选。本文通过案例分析,探讨Rust在这些领域的应用,例如Facebook的Compiler VM (CVM)项目和实验性的JavaScript JIT编译器Mithril。Rust的静态类型系统和所有权模型确保了高性能和安全性,而其强大的包管理和库生态则简化了虚拟机的开发。随着Rust社区的不断成熟,预计未来将有更多基于Rust的创新项目涌现,推动系统编程的发展。对于追求高性能和安全性的开发者而言,掌握Rust将成为一个重要战略方向。
71 1
|
3月前
|
Rust 开发者
揭秘Rust编程:模块与包的终极对决,谁将主宰代码组织的新秩序?
【8月更文挑战第31天】在软件工程中,模块化设计能显著提升代码的可读性、可维护性和可重用性。Rust 作为现代系统编程语言,其模块和包管理机制为开发者提供了强有力的工具来组织代码。本文通过对比模块和包的概念及使用场景,探讨了 Rust 中的最佳实践。
29 2
|
3月前
|
数据采集 Rust 监控
员工监控软件结合 Rust 语言的可能性
在企业管理精细化的趋势下,员工监控软件需求日益增长。Rust 语言以其安全性、高性能与并发能力,成为开发此类软件的理想选择。透过示例代码可见,无论是数据采集、处理或是网络通信,Rust 均能确保软件运行稳定、高效且避免常见的安全漏洞。随着 Rust 生态系统的持续发展,其为构建复杂监控系统提供了强大支持。这不仅提升了软件的整体表现,也更好地满足了企业对员工管理的需求。
30 1
|
3月前
|
开发者 Ruby
神秘编程魔法惊现!Ruby 元编程究竟隐藏着怎样的力量?竟能让代码自我进化!
【8月更文挑战第31天】《Ruby元编程:让代码自我进化》介绍了Ruby元编程的魅力,通过动态修改代码结构和行为,实现代码自我进化。文章通过实例展示了如何使用`class_eval`动态添加属性和方法,以及通过别名修改现有方法。此外,还介绍了利用模块实现代码复用和扩展。元编程为开发者提供了极大的灵活性和创造力,使代码更加动态高效。
29 0
|
3月前
|
JavaScript 前端开发 Java
目测,2023年需求最大的 8 种编程语言!
目测,2023年需求最大的 8 种编程语言!
|
6月前
|
程序员 Python
救命!揭秘编程语言中被低估的神器——IF语句
救命!揭秘编程语言中被低估的神器——IF语句
41 2
|
6月前
|
Rust 监控 数据安全/隐私保护
Rust语言在员工屏幕监控系统中的应用指南
员工屏幕监控系统在现代企业管理中扮演着重要角色。它们能够帮助企业监控员工的活动,确保他们的工作效率和数据安全。在这篇文章中,我们将探讨如何使用Rust语言构建一个简单而高效的员工屏幕监控系统,并提供一些代码示例以帮助你入门。
180 0
|
JavaScript 前端开发 Java
该选哪个语言进修呢?
该选哪个语言进修呢?
38 0