Sound.ALSA.Exception

alsa-core-0.5.0.1: Binding to the ALSA Library API (Exceptions).

Safe Haskell | Safe-Inferred
Language | Haskell98

Sound.ALSA.Exception

Description

ALSA does not distinguish between programming errors and runtime exceptions, which is sad, but we have to cope with it.

Synopsis

- data T = Cons {
  - location :: String
  - description :: String
  - code :: Errno
  }
- checkResult :: Integral a => String -> a -> IO a
- checkResult_ :: Integral a => String -> a -> IO ()
- checkResultMaybe :: String -> (CInt -> a) -> (CInt -> Maybe a) -> CInt -> IO a
- throw :: String -> Errno -> IO a
- catch :: IO a -> (T -> IO a) -> IO a
- catchErrno :: Errno -> IO a -> IO a -> IO a
- catchXRun :: IO a -> IO a -> IO a
- showErrno :: Errno -> String
- show :: T -> String
- rethrow :: IO a -> IO a
- strerror :: Errno -> IO String
- snd_strerror :: Errno -> IO CString

# Documentation

data T #

Constructors

Cons |
Fields location :: String description :: String code :: Errno

#### Instances

Instances details

Show T # |
Instance details Defined in Sound.ALSA.Exception Methods showsPrec :: Int -> T -> ShowS show :: T -> String showList :: [T] -> ShowS
Exception T # |
Instance details Defined in Sound.ALSA.Exception Methods toException :: T -> SomeException fromException :: SomeException -> Maybe T displayException :: T -> String

checkResult :: Integral a => String -> a -> IO a #

checkResult_ :: Integral a => String -> a -> IO () #

checkResultMaybe :: String -> (CInt -> a) -> (CInt -> Maybe a) -> CInt -> IO a #

throw :: String -> Errno -> IO a #

catch :: IO a -> (T -> IO a) -> IO a #

catchErrno #

Arguments

:: Errno |
-> IO a | Action
-> IO a | Handler
-> IO a |

catchXRun #

Arguments

:: IO a | Action
-> IO a | Handler
-> IO a |

showErrno :: Errno -> String #

show :: T -> String #

rethrow :: IO a -> IO a #

Converts any `T` into an `IOError`. This produces better a error message than letting an uncaught `T` propagate to the top.

strerror :: Errno -> IO String #

Returns the message for an error code.

snd_strerror :: Errno -> IO CString #