[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: lua_error and C++ destructors
- From: Roberto Ierusalimschy <roberto@...>
- Date: Mon, 22 Jun 1998 12:00:56 -0300
I guess one aproach is to use a try {} catch block, as you mentioned. If you
really plan to use lots of exception handling in C++, then do everything with
exceptions, and only in the Lua "borders" you convert from one to the other.
So, you could use:
void dofile (char *filename) {
if (lua_dofile(filename) != 0)
raise exception; // I don't remember the C++ syntax...
}
etc for dostring, lua_call, ...
Any C++ function called from Lua should catch all exceptions, and then call
lua_error in the handler. In this way, everytime you come from Lua to C++
errors are turned into exceptions, and when going from C++ to Lua exceptions
become errors. In your particular example, you should not use a flag (iserror),
but an exception, since that is C++.
-- Roberto