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 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.