2
:getCommandfromのユーザーは、ユーザーからいくつかの文字列を取得し、「読み取り」機能を使って、この文字列からいくつかのデータを読み取ろうとするこのコード機能で私は、読み取り機能によって引き起こさ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);
に
読み取りが例外スローがある失敗した場合:
*** Exception : prelude.read : no parse
とプログラムは終了... が、私はこの例外をキャッチすることはできません - この例外のタイプは何ですか?
私は
EはE
[ハスケルの読み込み関数からパーズしない例外をキャッチする方法は?](http://stackoverflow.com/questions/5121371/how-to-catch-a-no-parse-exception-from) -the-read-function-in-haskell) – hammar
それは私がこの例外をキャッチしたいと考えていません... – user606521
2番目の答えは見ましたか? 'try'を使ってキャッチする方法を示していますが、' reads'と 'Maybe'を使って純粋なアプローチを検討することを強くお勧めします。 – hammar