hslua-1.3.0.1: Bindings to Lua, an embeddable scripting language
Copyright© 2017-2020 Albert Krewinkel
LicenseMIT
MaintainerAlbert Krewinkel <tarleb+hslua@zeitkraut.de>
Stabilitybeta
PortabilityDeriveDataTypeable
Safe HaskellNone
LanguageHaskell2010

Foreign.Lua.Core.Error

Description

Lua exceptions and exception handling.

Synopsis

Documentation

newtype Exception Source #

Exceptions raised by Lua-related operations.

Constructors

Exception 

catchException :: Lua a -> (Exception -> Lua a) -> Lua a Source #

Catch a Lua Exception.

throwException :: String -> Lua a Source #

Raise a Lua Exception containing the given error message.

withExceptionMessage :: (String -> String) -> Lua a -> Lua a Source #

Catch Lua Exception, alter the message and rethrow.

throwErrorAsException :: Lua a Source #

Convert a Lua error into a Haskell exception. The error message is expected to be at the top of the stack.

throwTopMessage :: Lua a Source #

Alias for throwErrorAsException; will be deprecated in the next mayor release.

throwTopMessageWithState :: State -> IO a Source #

Convert the object at the top of the stack into a string and throw it as a HsLua Exception.

This function serves as the default to convert Lua errors to Haskell exceptions.

errorMessage :: State -> IO ByteString Source #

Retrieve and pop the top object as an error message. This is very similar to tostring', but ensures that we don't recurse if getting the message failed.

try :: Lua a -> Lua (Either Exception a) Source #

Return either the result of a Lua computation or, if an exception was thrown, the error.

Helpers for hslua C wrapper functions.

throwMessage :: String -> Lua a Source #

Helper function which uses proper error-handling to throw an exception with the given message.

liftLuaThrow :: (State -> Ptr StatusCode -> IO a) -> Lua a Source #

Takes a failable HsLua function and transforms it into a monadic Lua operation. Throws an exception if an error occured.

Orphan instances

Alternative Lua Source # 
Instance details

Methods

empty :: Lua a #

(<|>) :: Lua a -> Lua a -> Lua a #

some :: Lua a -> Lua [a] #

many :: Lua a -> Lua [a] #