Difference between revisions of "Geterror"

From OpenEUO
Jump to: navigation, search
m (Upon Error)
m (Usage Example)
 
(One intermediate revision by the same user not shown)
Line 10: Line 10:
  
 
  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 f = function() local a  = {} a = a + 1 end
 
  local h = function(eref)
 
  local h = function(eref)
   local e = geterror(eref)
+
   local le = eref
   print(e._errmsg)
+
   if type(le) == 'string' then
 +
    error(le,1)
 +
  end
 
  end
 
  end
  sl.try(f,h)
+
  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 ==
Line 33: Line 45:
  
 
== See Also ==
 
== See Also ==
 +
 +
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]
  
 
* [[ERR]]
 
* [[ERR]]

Latest revision as of 16: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.

See Also