モダードトランスExceptT
を使ってIO Monad
をラップします。どのようにhaskell catch throwIO例外をExceptTで呼び出す
Exception
でキャッチしたと例えば1
へとEither e a
タイプ変換ので、どのように
、その後、内部IOモナドでthrowIO e
、
:
私のプログラムのタイプを定義します
をnewtype HandlerT ea = HandlerT {RunHandlerT :: ExceptT e(ReaderT(IO a))
次に、内部IOモナドでHTTPリクエストにアクセスして存在しないWebサイトがあると、無意味なhttp.LBSはコールのthrowIOによって例外をスローします。
その後、
runExceptT $ runReaderT $ runHandlerT (http.LBS "http://notexist.com")
は、eは、内部呼び出しが投げる例外を持ってEither e a
を返します。