happybara-0.0.1: src/Happybara/Exceptions.hs
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE ExistentialQuantification #-}
-- |
-- Copyright : (c) Charles Strahan 2014
-- License : MIT
-- Maintainer: Charles Strahan <charles.c.strahan@gmail.com>
-- Stability : experimental
--
module Happybara.Exceptions where
import Control.Exception
import Data.Typeable
data HappybaraException = forall e . Exception e => HappybaraException e
deriving Typeable
instance Show HappybaraException where
show (HappybaraException e) = show e
instance Exception HappybaraException
data InvalidElementException = forall e . Exception e => InvalidElementException e
deriving Typeable
instance Show InvalidElementException where
show (InvalidElementException e) = show e
instance Exception InvalidElementException where
toException = toException . HappybaraException
fromException x = do
HappybaraException a <- fromException x
cast a
data ExpectationNotMetException = ExpectationNotMetException
deriving (Show, Typeable)
instance Exception ExpectationNotMetException where
toException = toException . InvalidElementException
fromException x = do
InvalidElementException a <- fromException x
cast a
data ElementNotFoundException = ElementNotFoundException
deriving (Show, Typeable)
instance Exception ElementNotFoundException where
toException = toException . InvalidElementException
fromException x = do
InvalidElementException a <- fromException x
cast a
data AmbiguousElementException = AmbiguousElementException
deriving (Show, Typeable)
instance Exception AmbiguousElementException where
toException = toException . InvalidElementException
fromException x = do
InvalidElementException a <- fromException x
cast a