Externals Under 2.7.x
Trevor DeVore
lists at mangomultimedia.com
Sat Feb 10 11:39:28 EST 2007
On Feb 10, 2007, at 4:36 AM, Dave wrote:
>> Something like "revLastExternalError". By always setting this
>> variable to any error messages from within the external you
>> maintain standard behavior for functions and have a variable to
>> check for errors:
>
> Except that if the function was non-external then you'd still have
> to have different code paths?
You could define revLastExternalError (or some variable of your
choice) as global and use it to report errors from any function. The
trick of setting the "it" variable and "the result" in a function is
something you can only do in an external so even if you go that route
you would have to come up with a different solution for functions
written in Revolution.
Another option might be to throw errors when they occur in functions
which I think is what is happening if you set the error variable to
true in an external.
I guess you could also go the route of always passing the variable
that will contain the function result by reference and always
returning the error at the end of the function.
function getSomeValue @pReturnValue, param1, param2
local theError
... Do stuff to get value. If something goes wrong then put
error string into theError
return theError
end getSomeValue
To accomplish the same thing in an external function you would pass
in the name of the variable and set it using SetVariable.
I'm really just thinking (typing) out loud on this but it is an issue
I've been thinking about lately as I don't really have a standard
means of reporting errors from functions. I find myself
experimenting with different methods in my projects. All I know is I
really don't like functions that can return a result that can be
valid data or an error string.
Any other ideas?
--
Trevor DeVore
Blue Mango Learning Systems - www.bluemangolearning.com
trevor at bluemangolearning.com
More information about the use-livecode
mailing list