
- 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
廣告