0
我有一個程序生成JSON並將其打印到文件。生成JSON的函數在代碼生成過程中可能會失敗。Haskell:中止寫入文件錯誤
在JSON生成失敗的時刻,到此爲止生成的代碼仍然被寫入文件,給我一個不完整/不正確的輸出文件。
我想弄清楚如何防止寫入錯誤的輸出。喜歡的東西:
main = do
let
output = encodingfunction
print' (Just x) = writeFile "outputfile" output
print' _ = putStrLn "Encoding Failed Miserably"
print' ouput
return()
encodingfunction :: Maybe String
您需要'encodingFunction'來更改,返回'Maybe String'而不是返回可能在某處出現錯誤的'String'。 – amalloy
@amalloy我對「編碼功能」進行了修改,但仍然存在相同的問題。我是否必須將程序中的每個函數都更改爲'Maybe'類型? – matthias
正如你所寫的,你的代碼應該可以工作,儘管你應該在'writeFile'調用中使用'x'而不是'output'。如果你仍然有問題,請製作一個[最小,完整和可驗證的例子])http://stackoverflow.com/help/mcve),這樣回答者可以看到錯誤。 – amalloy