我想读取Haskell中的文件,但捕获异常但无法正常工作。 代码如下:Haskell-readFile捕获异常
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 })'
你能不能给我一个提示? 感谢
http://www.haskell.org/ghc/docs/6.12.2/html/libraries/base-4.2.0.1/Control-Exception.html#5 – Jonke 2011-03-07 21:47:15