gpt4 book ai didi

Clojure 没有捕获 NumberFormatException

转载 作者:行者123 更新时间:2023-12-04 17:27:55 29 4
gpt4 key购买 nike

在以下代码中,Clojure (1.2) 打印出错误消息:

(try
(let [value "1,a"]
(map #(Integer/parseInt %) (.split value ",")))
(catch NumberFormatException _ (println "illegal argument")))

这应该打印“非法参数”,但它打印的是 (1#<NumberFormatException java.lang.NumberFormatException: For input string: "a"> .

我究竟做错了什么?

这是因为 map 返回的惰性序列吗? ?应该怎么写?

最佳答案

try特殊形式仅捕获在主体代码的动态范围期间引发的异常。这里map返回一个惰性序列,然后从 try 中传递出去特殊形式并返回。然后打印机评估序列,并在此时抛出异常。

包装 mapdoall应该可以解决您的问题。

关于Clojure 没有捕获 NumberFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4908396/

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