Next: 3.3.5.0.1 Sample
Up: 3.3 Automation binding
Previous: 3.3.4.2 Calling Lua from
Contents
When a run time error occurr when using LuaCOM's methods or objects,
there are two possible actions LuaCOM can take:
- to signal the error using
lua_error
;
- ignore the error, just doing nothing or returning some kind of
error value.
The run time errors can be divided into three types:
- errors inside API calls, like CreateObject;
- errors when using LuaCOM objects (COM method calls);
- errors inside COM objects implemented in Lua.
The third type of error is always translated into a COM exception
returned to the server. To ease debugging, these errors are also
logged (if the logging facility has been activated), as the server can
silenty ignore these exceptions, specially in events.
If the LuaCOM library is compiled with VERBOSE
defined, then
a lot of informative messages are logged and all errors are displayed
within a dialog box. This helps debug errors inside events on the fly,
as these errors are commonly ignored by the server. Notice that this
options slows down LuaCOM and can generate very big log files.
The behaviour of LuaCOM for the other two types can be
customized. There is a table called config inside the LuaCOM
table. This table holds three fields related to error handling:
- abort_on_API_error
- if false, LuaCOM silently
fails on errors inside API calls. This is NOT true for errors caused
by supplying bad parameters: these always generate calls to
lua_error
. The default value for this field is false.
- abort_on_error
- if false, errors inside method calls
and property accesses are also ignored, possibly return
nil
where a return value is expected. The default value for this field is
true.
- last_error
- every time a run time error occurr LuaCOM
sets this field with the text describing the error. This field can be
used to check if some operation failed; just remember to set it to
nil before the operation of interest.
Subsections
Next: 3.3.5.0.1 Sample
Up: 3.3 Automation binding
Previous: 3.3.4.2 Calling Lua from
Contents
Fabio Mascarenhas de Queiroz
2004-09-13