2
我試圖引起讀功能CACH例外:沒有解析異常
run :: CurrentData -> IO()
run current = do
{
x <- (getCommandFromUser) `E.catch` handler;
updated <- executeCommand x current;
run updated;
} where handler :: E.IOException -> IO Command
handler e = do putStrLn "wrong command format" >> return (DoNothing);
在這段代碼功能getCommandfrom用戶會從用戶的一些字符串,然後嘗試使用來讀取該字符串的一些數據「讀」功能
如果讀取失敗,有異常拋出:
*** Exception : prelude.read : no parse
和程序退出... 我不能趕上這個例外 - 這是什麼異常的類型???
我想也E.SomeException代替E.IOException ...
E是從進口Control.Exception爲E
[如何從Haskell的讀取函數中捕獲無分析異常?](http://stackoverflow.com/questions/5121371/how-to-catch-a-no-parse-exception-from -has-read-function-in-haskell) – hammar 2012-01-16 09:13:04
不,不幫助我我想抓住這個例外... – user606521 2012-01-16 09:30:39
你有沒有看到第二個答案?它展示瞭如何使用'try'來捕獲它,但是我強烈建議考慮使用'reads'和'Maybe'的純方法。 – hammar 2012-01-16 09:46:17