我正在尝试在 Haskell 中读取文件并捕获异常但无法正常工作。代码如下所示:
module Main where
import System.Environment
import System.IO
import System.Exit
main = do
x:xs <- getArgs
case length(x:xs) of
2 -> do catch (readFile x)
(\_ -> do putStrLn ("Error on reading file: " ++ x)
getLine
exitWith ExitSuccess)
_ -> do putStrLn ("Run this way: ./projekt inputFile RE") >>
exitFailure
我得到这个错误:
Couldn't match expected type `IO String
-> (ExitCode -> IO a)
-> ExitCode
-> IO String'
against inferred type `IO ()'
In the expression:
putStrLn
("Error on reading file: " ++ x) getLine exitWith ExitSuccess
In the expression:
do { putStrLn
("Error on reading file: " ++ x) getLine exitWith ExitSuccess }
In the second argument of `catch', namely
`(\ _ -> do { putStrLn
("Error on reading file: " ++ x) getLine exitWith ExitSuccess })'
你能给我一个提示吗?谢谢