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.:有人可能會爭辯說,這些行的任何組合都會使意圖不太清晰。
您的示例代碼無效。它有一個類型錯誤。 –