Difference between revisions of "Geterror"
From OpenEUO
					
										
					
					| m (Created page with "== Calling Convention == Call  local r[,...] = sl.non([...]) Args  a1...aN are of any type Results  r1...rN are boolean  == Usage Example ==   local sl = dofile(getinstalldir().....") | m (→Usage Example) | ||
| (4 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
| == Calling Convention == | == Calling Convention == | ||
| Call | Call | ||
| − |   local  | + |   local e = sl.geterror(eref) | 
| Args | Args | ||
| − | + |   eref is a number | |
| Results | Results | ||
| − | + |   e is a table with key:val pair _type:'table:exception' defined | |
| == Usage Example == | == Usage Example == | ||
|   local sl = dofile(getinstalldir()..'/lib/simplelib.lua') |   local sl = dofile(getinstalldir()..'/lib/simplelib.lua') | ||
| − | + |   sl.slredirect('in') | |
| − | + |   local f = function() local a  = {} a = a + 1 end | |
| − |   local  | + |   local h = function(eref) | 
| − |   print( | + |    local le = eref | 
| − | + |    if type(le) == 'string' then | |
| − |   print( | + |      error(le,1) | 
| − |   print(d) | + |    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 == | == 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 == | == Upon Error == | ||
| − | If  | + | 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 == | == See Also == | ||
| + | |||
| + | * [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib] | ||
| * [[ERR]] | * [[ERR]] | ||
Latest revision as of 17:18, 2 November 2010
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.
