{-# language DeriveDataTypeable #-}
{-# language LambdaCase #-}
module Control.Exception.Common where
import Control.Exception
-- import Control.Monad.Catch (MonadThrow (..))
import Data.Typeable -- (TypeRep, Typeable, typeRep)
-- | Exceptions related to loading/importing data
data ImportError = FileParseError String String deriving (Eq, Typeable)
instance Show ImportError where
show = \case
FileParseError s s2 -> unwords [s, ": File parse error:", s2]
instance Exception ImportError
-- | Exceptions related to serializing/storing data
data ExportError = FormatExportNotSupported String String deriving (Eq, Typeable)
instance Show ExportError where
show = \case
FormatExportNotSupported s sty -> unwords [s, ":", sty, "format not supported"]
instance Exception ExportError