1
我想在Haskell中锁定一个专用的文件,并在已锁定的情况下抛出IOError
。报告Haskell锁定文件的更好方法
import Data.Maybe (fromMaybe)
import System.FileLock (FileLock, SharedExclusive (Exclusive), tryLockFile)
-- ...
do
-- ...
maybeFileLock <- tryLockFile path Exclusive -- returns Maybe FileLock
let fileLock = fromMaybe (throwIO (userError "File locked")) maybeFileLock
有没有更好的方式来处理Maybe
,只是抛出一个异常,如果它是Nothing
?我可以将这两条线合并成一条线吗?
N.B.:有人可能会争辩说,这些行的任何组合都会使意图不太清晰。
您的示例代码无效。它有一个类型错误。 –