hslua-1.1.0: 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

Contents

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.

newtype Failable a Source #

CInt value or an error, using the convention that value below zero indicate an error. Values greater than zero are used verbatim. The phantom type is used for additional type safety and gives the type into which the wrapped CInt should be converted.

Constructors

Failable CInt 

fromFailable :: (CInt -> a) -> Failable a -> Lua a Source #

Convert from Failable to target type, throwing an error if the value indicates a failure.

throwOnError :: Failable () -> Lua () Source #

Throw a Haskell exception if the computation signaled a failure.

throwMessage :: String -> Lua a Source #

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

boolFromFailable :: Failable LuaBool -> Lua Bool Source #

Convert lua boolean to Haskell Bool, throwing an exception if the return value indicates that an error had happened.

Signaling errors to Lua

hsluaErrorRegistryField :: String Source #

Registry field under which the special HsLua error indicator is stored.

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