0

私の質問は、スラープを使用する場合、ロードされないファイル名と例外テキストの代わりに、例外から nil を返すにはどうすればよいですか? 詳細はこちら。

次のコードで nil を返したい:

(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 に答える