Subscribed unsubscribe Subscribe Subscribe

自前の例外を扱う

Haskell

所謂extensible exceptionsというやつ。すぐに忘れそうなのでメモ。

{-# LANGUAGE DeriveDataTypeable, ScopedTypeVariables #-}
import Control.Exception
import Data.Typeable
import Prelude hiding (catch)

data MyException = MyException deriving (Show, Typeable)
instance Exception MyException

main = throw MyException
 `catch` \(e :: MyException) -> print e

real world haskellにはextensible exceptions以前の例外処理が載っているとのこと。