Propagate sys.exit(code) up the call stack to the shell
SystemExitException is instantiated and thrown by Base::Interpreter whenever the python interpreter executes a sys.exit(<exitCode>) call. However, in the current implementation, the SystemExitException effectively swallows the <exitCode> hence under this change, SystemExitException has been extended to save the <exitCode> passed to the sys.exit() call when it is instantiated and provides a new getExitCode() accessor method to retrieve the <exitCode> in a try/catch block. MainGui.cpp was change to pass the corresponding <exitCode> to the system exit() call so it is accessible in the shell.
This commit is contained in:
@@ -236,8 +236,8 @@ int main( int argc, char ** argv )
|
||||
else
|
||||
App::Application::runApplication();
|
||||
}
|
||||
catch (const Base::SystemExitException&) {
|
||||
exit(0);
|
||||
catch (const Base::SystemExitException& e) {
|
||||
exit(e.getExitCode());
|
||||
}
|
||||
catch (const Base::Exception& e) {
|
||||
e.ReportException();
|
||||
|
||||
Reference in New Issue
Block a user