Geterror

From OpenEUO
Revision as of 16:18, 2 November 2010 by Ximan (Talk | contribs) (Usage Example)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Calling Convention

Call

local e = sl.geterror(eref)

Args

eref is a number

Results

e is a table with key:val pair _type:'table:exception' defined

Usage Example

local sl = dofile(getinstalldir()..'/lib/simplelib.lua')
sl.slredirect('in')
local f = function() local a  = {} a = a + 1 end
local h = function(eref)
  local le = eref
  if type(le) == 'string' then
    error(le,1)
  end
end
local c,d = sl.try(f,h)
print(tostring(c))
print(tostring(d))
print(tostring(sl.geterror(d)._errmsg))
--> nil
    1
    a try() handler function raised an unknown exception.
    At: ...\scripts\test00.lua:11.
    Exception text: ...\scripts\test00.lua:7: attempt to perform arithmetic on local 'a' (a table value).

Description

geterror returns the recorded error table of a detected error when given a valid numeric error reference, eref. An error table has the following fields:

field     : description
_type       'table:exception'
_errid      Same as the argument provided to geterror. Numeric.
_errname    Name provided for the error, or 'SL unknown error'.
_errmsg     String of descriptive text associated with the error.
_probe      A table of stack information tables for internal use.

Upon Error

If geterror receives no arguments, or a non-numeric argument, or the argument is out of range, then it returns a single nil value.

See Also