Error handling in Lua column map procedures
One method to handle errors in Lua column map procedures
is to encapsulate your code in the pcall
(protected
call) function. When there is an error, the pcall
function
returns a table object that contains the error code and error message.
You can extract and print the error code and error message that are
returned by the pcall
function.
Example
The example function shows how the pcall
function
can be used to handle errors. The code after the pcall
function
prints the error code and error message in the table object that is
returned by the pcall
function.
function cm_transform()
-- Protected invocation of optim.source.getcolumnvalue function
local status, result = pcall(optim.source.getcolumnvalue)
if status then
-- Perform simple masking as example only
value = 'masked' .. result
optim.target.setcolumnvalue(value)
else
err = result
if type(err) == "table" then
if err.code \~= nil then
optim.print("err.code: " .. err.code)
optim.print("err.message: " .. err.message)
else
error("err.code is nil")
end
else
optim.print("err: " .. err)
end
end
end