gpt4 book ai didi

exception - 使用 Clojure 处理异常

转载 作者:行者123 更新时间:2023-12-02 23:18:28 29 4
gpt4 key购买 nike

在我的 clojure 脚本中,我有一个应该处理异常的 try/catch

                datalayer (try (parse-dl line)
(catch Exception e []))

但是当我执行代码时出现异常:

Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected end-of-input: was expecting closing quote for a string value

我应该怎么做才能忽略这些异常

最佳答案

这只是一个猜测,因为我不知道 parse-dl 是做什么的,尽管有一个常见的模式会导致异常被抛出到预期的 try catch 之外。如果您从 try catch 中的一些惰性代码开始:

user> (def my-data [1 2 3])
#'user/my-data
user> (defn my-work [data]
(throw (Exception. "hi")))
#'user/my-work
user> (try
(map my-work my-data)
(catch Exception e []))
Exception hi user/my-work (form-init3735135586498578464.clj:1)

因为map返回一个惰性序列,实际计算发生在REPL打印结果时,因此在try catch block 返回后抛出异常。要修复惰性错误,请将 map 包装在对 doall

的调用中
user> (try
(doall (map my-work my-data))
(catch Exception e []))
[]

当从 with-open 表达式返回惰性序列时,会发生另一个相关的惰性错误,因此在计算发生时,文件已经被 with-open 宏关闭。

关于exception - 使用 Clojure 处理异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24390148/

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