0

我的问题是如何从异常中返回 nil 而不是 - 在使用 slurp 的情况下 - 不会加载的文件名和异常文本?这是详细信息。

我希望以下代码返回零:

(defn open-csv-file
    "Attempts to open a .csv file and complains if the file is not present."

    [file-name]
        (let [file-data 
            (try 
                (slurp file-name)
                (catch Exception e (.getMessage e)))]
            file-data))

这是现在返回的示例。

bene-cmp.core=> (load-file "src/bene_cmp/core.clj")
#'bene-cmp.core/-main
bene-cmp.core=> (def x  (open-csv-file "test_file.csv"))
#'bene-cmp.core/x
bene-cmp.core=> x
"test_file.csv (No such file or directory)"
bene-cmp.core=> 

我试图避免修改此函数,以便它引发异常,然后让调用者使用 try/catch 块。

谢谢你。

4

1 回答 1

2

如果我理解你的问题,你只需要改变这个:

(catch Exception e (.getMessage e)))]

对此:

(catch Exception e))]
于 2012-04-04T13:58:51.763 回答