Page 1 of 1
Killing a lua script
Posted: Fri Jun 02, 2017 4:28 pm
by MB
All,
What is the best way to exit a running script,
os.exit()
This line crashes octane.
I would like to do some error checking and end the whole thing if one is encountered.
thx
Re: Killing a lua script
Posted: Sat Jun 03, 2017 6:43 am
by bepeg4d
Hi MB,
I'm not a programmer, but an architect, but my solution to error handling is to use an if state with return:
local function showError(text)
octane.gui.showDialog{
type = octane.gui.dialogType.BUTTON_DIALOG,
title = "Error",
text = text }
end
if x == 0 then
showError("Your error message")
return
end
hope it helps,
ciao beppe
Re: Killing a lua script
Posted: Mon Jun 05, 2017 4:15 pm
by MB
Beppe
Thanks for responding. I will try tomorrow when I'm back in the office, but if memory serves me correctly that will not exit the program completely.
best
Re: Killing a lua script
Posted: Tue Jun 06, 2017 10:34 pm
by roeland
To be a bit more technical, a Lua script is treated the same as a function body. So you can use
return
to exit your script. If you're writing a script you want to call from the command-line you may return an integer number, which will then be visible as the exit code of the octane process.
You can also call the error function:
error("oops")
to raise an error. The effect depends on the context:
- Raising an error in the main script (or in any function called directly from there) will stop the script. When called from the command line, this results in a non-zero exit code.
- Raising an error in a render callback will stop the render.
- GUI callbacks should not raise errors, you'll have to add some handling yourself to close any open dialogs.
os.exit()
will exit the application, but I recommend not using this function as it can interfere with the authentication management. For batch processes, use the
--stop-after-script
or
--no-gui
option instead to exit octane after the script finishes.
--
Roeland