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