Eli*_*lie 3 exception clojure apache-pig
在我的clojure脚本上,我有一个应该处理异常的try/catch
datalayer (try (parse-dl line)
(catch Exception e []))
Run Code Online (Sandbox Code Playgroud)
但是当我执行我的代码时,我有一个例外:
引起:com.fasterxml.jackson.core.JsonParseException:意外的输入结束:期望字符串值的结束引用
我该怎么做才能忽略这些例外
这只是一个猜测,因为我不知道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)
Run Code Online (Sandbox Code Playgroud)
因为map返回一个惰性序列,所以当REPL打印结果时会发生实际计算,因此在try catch块返回后抛出异常.要修复lazy-bug,请在调用中包装地图doall
user> (try
(doall (map my-work my-data))
(catch Exception e []))
[]
Run Code Online (Sandbox Code Playgroud)
当从with-open表达式返回一个惰性序列时,会发生另一个相关的懒惰错误,以便在计算发生时,文件已被with-open宏关闭.
| 归档时间: |
|
| 查看次数: |
517 次 |
| 最近记录: |