improve error handling

This commit is contained in:
Grzegorz Kowalski 2023-02-05 12:53:11 +01:00
parent 69143b963b
commit 152734b329
3 changed files with 14 additions and 8 deletions

View File

@ -3,12 +3,15 @@
int lut_DevFailed(lua_State* L, Tango::DevFailed e, const char* source)
{
int nerr = e.errors.length();
lua_createtable(L, nerr, 1);
lua_createtable(L, nerr, 2);
int top = lua_gettop(L);
lua_pushstring(L, source);
lua_setfield(L, -2, "source");
lua_pushboolean(L, true);
lua_setfield(L, -2, "is_DevFailed");
for(int i = 0; i < nerr; i++)
{
lua_pushnumber(L, i+1);

View File

@ -35,7 +35,6 @@ int cmd_wrapper(lua_State* L);
int lut_DeviceProxy_status(lua_State* L);
int lut_DeviceProxy_get_attribute_list(lua_State* L);
int lut_DeviceProxy_get_command_list(lua_State* L);
int lut_DeviceProxy_command_wrapper(lua_State* L);
// Lua API
void lut_lua_register_DeviceProxy(lua_State* L);

View File

@ -2,12 +2,16 @@ local log = require "lutango.lutLog"
local function default_handler(e)
io.stderr:write("\n=================================== EXCEPTION ===================================\n")
io.stderr:write("Tango Error Stack:\t"..e.source.."\n")
for i,v in ipairs(e) do
io.stderr:write("\t"..i..":\n")
io.stderr:write("\t\t"..v.severity.."\t\t"..v.reason.."\n")
io.stderr:write("\t\t"..v.desc.."\n")
io.stderr:write("\t\t"..v.origin.."\n\n")
if e.is_DevFailed then
io.stderr:write("Tango Error Stack:\t"..e.source.."\n")
for i,v in ipairs(e) do
io.stderr:write("\t"..i..":\n")
io.stderr:write("\t\t"..v.severity.."\t\t"..v.reason.."\n")
io.stderr:write("\t\t"..v.desc.."\n")
io.stderr:write("\t\t"..v.origin.."\n\n")
end
else
io.stderr:write(tostring(e))
end
io.stderr:write(debug.traceback("", 6))
io.stderr:write("\n=================================================================================\n\n")