2
我正在寫一些關於在SML中讀取和寫入文件的簡單程序,並且我正在考慮跟蹤文件是否成功打開/溢出發生等。如果在編譯期間發生任何異常,我希望函數返回假的還是真的。SML:如何檢查是否有異常?
這樣的實現是可行的嗎?如果是這樣,怎麼樣?如果沒有,還有其他解決方案嗎
我不知道如果我做正確:
fun getN(file) =
let
val input = TextIO.openIn file
fun num(n) =
case n of
NONE => []
| SOME(str) => str_to_num(str) @ num(TextIO.inputLine input)
in
if OS.FileSys.access(file, []) then
num(TextIO.inputLine input) before TextIO.closeIn input
else []
//OR
num(TextIO.inputLine input) before TextIO.closeIn input
handle Io => []
end;
然而,這些方法都不會返回[]當文件的目錄不存在。爲什麼?
「如果在編譯過程中出現任何異常」您是指在運行時?看看'handle'語句。 –