{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} module SDL.Exception ( SDLException(..) ) where import Control.Exception import Data.Data (Data) import Data.Text (Text) import Data.Typeable (Typeable) import GHC.Generics (Generic) -- | Error details about a failure to call an SDL routine. Almost all functions in this library have the -- ability to produce exceptions of this type. Inspection should help you learn more about what has -- gone wrong. data SDLException = -- | A call to a low-level SDL C function failed unexpectedly. SDLCallFailed {sdlExceptionCaller :: !Text -- ^ The Haskell routine that was trying to call a C function ,sdlFunction :: !Text -- ^ The C function that was called and produced an error ,sdlExceptionError :: !Text -- ^ SDL's understanding of what has gone wrong } | -- | An SDL C function was called with an unexpected argument. SDLUnexpectedArgument {sdlExceptionCaller :: !Text -- ^ The Haskell routine that was trying to call a C function ,sdlFunction :: !Text -- ^ The C function that was called and produced an error ,sdlUnknownValue :: !String -- ^ The argument that SDL failed to understand } | -- | A hint was attempted to be set, but SDL does not know about this hint. SDLUnknownHintValue {sdlHint :: !String -- ^ The hint that could not be set ,sdlUnknownValue :: !String -- ^ The value that could not be set } deriving (Data,Eq,Generic,Ord,Read,Show,Typeable) instance Exception SDLException