- Clojure 教程
- Clojure - 首页
- Clojure - 概述
- Clojure - 环境
- Clojure - 基本语法
- Clojure - REPL
- Clojure - 数据类型
- Clojure - 变量
- Clojure - 运算符
- Clojure - 循环
- Clojure - 决策
- Clojure - 函数
- Clojure - 数字
- Clojure - 递归
- Clojure - 文件 I/O
- Clojure - 字符串
- Clojure - 列表
- Clojure - 集合
- Clojure - 向量
- Clojure - 映射
- Clojure - 命名空间
- Clojure - 异常处理
- Clojure - 序列
- Clojure - 正则表达式
- Clojure - 断言
- Clojure - 解构
- Clojure - 日期和时间
- Clojure - 原子
- Clojure - 元数据
- Clojure - StructMaps
- Clojure - 代理
- Clojure - 观察者
- Clojure - 宏
- Clojure - 引用值
- Clojure - 数据库
- Clojure - Java 接口
- Clojure - 并发编程
- Clojure - 应用
- Clojure - 自动化测试
- Clojure - 库
- Clojure 有用资源
- Clojure - 快速指南
- Clojure - 有用资源
- Clojure - 讨论
Clojure - agent 错误
如果代理失败,则返回代理异步操作期间抛出的异常。如果代理未失败,则返回 nil。
语法
以下是语法。
(agent-error agentname)
参数 - ‘agentname’ 是应为其设置 agent-error 函数的代理。
返回值 - 如果代理失败,则返回代理异步操作期间抛出的异常。如果代理未失败,则返回 nil。
示例
以下程序显示了如何使用此功能的示例。
(ns clojure.examples.example (:gen-class)) (defn Example [] (def my-date (agent(java.util.Date.))) (send my-date + 100) (await-for 100 my-date) (println (agent-error my-date))) (Example)
在上面的程序中,我们通过递增日期变量的值来强制发生异常,这是错误的。这将导致异常,并在 'prinltn' 语句的帮助下发送到屏幕。
输出
以上程序产生以下输出。
Exception in thread "main" java.lang.RuntimeException: Agent is failed, needs start, compiling:(C:\Users\Administrator\demonew\src\demonew\main.clj:9:1) at clojure.lang.Compiler.load(Compiler.java:7239) at clojure.lang.Compiler.loadFile(Compiler.java:7165) at clojure.main$load_script.invoke(main.clj:275) at clojure.main$init_opt.invoke(main.clj:280) at clojure.main$initialize.invoke(main.clj:308) at clojure.main$null_opt.invoke(main.clj:343) at clojure.main$main.doInvoke(main.clj:421) at clojure.lang.RestFn.invoke(RestFn.java:421) at clojure.lang.Var.invoke(Var.java:383) at clojure.lang.AFn.applyToHelper(AFn.java:156) at clojure.lang.Var.applyTo(Var.java:700) at clojure.main.main(main.java:37) Caused by: java.lang.RuntimeException: Agent is failed, needs restart at clojure.lang.Util.runtimeException(Util.java:225) at clojure.lang.Agent.dispatch(Agent.java:238) at clojure.core$send_via.doInvoke(core.clj:1995) at clojure.lang.RestFn.invoke(RestFn.java:445) at clojure.lang.AFn.applyToHelper(AFn.java:160) at clojure.lang.RestFn.applyTo(RestFn.java:132) at clojure.core$apply.invoke(core.clj:636) at clojure.core$send.doInvoke(core.clj:2006) at clojure.lang.RestFn.invoke(RestFn.java:425) at clojure.core$await_for.doInvoke(core.clj:3177) at clojure.lang.RestFn.invoke(RestFn.java:423) at clojure.examples.example$Example.invoke(main.clj:6) at clojure.examples.example$eval12.invoke(main.clj:9) at clojure.lang.Compiler.eval(Compiler.java:6782) at clojure.lang.Compiler.load(Compiler.java:7227) ... 11 more
clojure_agents
广告