好的,大家,这是一个非常简单的问题(似乎奇怪的是谷歌没有帮助我解决这个问题):
import IO
--.... yadda, yadda, yadda
file <- openFile "/some/path" ReadMode
我如何检查从openFile
获取的句柄是否有效,即文件是否存在并成功打开?
openFile
将会引发异常。import System.IO
main = do
openFile "/some/path" ReadMode
出现错误:
A.hs: /some/path: openFile: does not exist (No such file or directory)
openFile
可能抛出的异常类型在此处列出,包括:
您可以使用Control.Exception捕获这些错误,如下所示:
{-# LANGUAGE ScopedTypeVariables #-}
import System.IO
import Control.Exception
main = do
handle (\(e :: IOException) -> print e >> return Nothing) $ do
h <- openFile "/some/path" ReadMode
return (Just h)
IO
模块,该模块已过时。请改用System.IO
模块。 - fuz