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 Source #

Constructors

Cons |

Fields

- location :: String
- description :: String
- code :: Errno

#### Instances

Instances details

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

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

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

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

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

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

catchErrno Source #

Arguments

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

catchXRun Source #

Arguments

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

showErrno :: Errno -> String Source #

show :: T -> String Source #

rethrow :: IO a -> IO a Source #

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 Source #

Returns the message for an error code.

snd_strerror :: Errno -> IO CString Source #