MATLAB: How to prevent the error dialog from blocking a compiled standalone application from exiting

applicationcatchcompileddialogerrorMATLAB Compilerstandalonetry

When there is an uncaught exception in a standalone application, an error dialog window appears that blocks the program until the user closes the dialog window manually.

Best Answer

There are two solutions for this: Either enable displaying to the shell or catch the exception and terminate the program.
When the "Do not display the Windows Command Shell (console) for execution" check box under "Additional runtime settings" in the Application Compiler GUI is checked, or if you compile with "mcc" using "-e" (or "-W WinMain -T link:exe"), then error messages will be rerouted to a dialog box. Enabling displaying to shell will display the error in the shell from which the program is run.
See the following documentation page for more information:
Alternatively, if you would like to terminate the application when there is an uncaught error only in the deployed application, then you can wrap your code in a try-catch block, and in the catch block, do any necessary logging and call quit/exit with the appropriate exit code after checking if the script is deployed:
try
myProgramScript;
catch E
% do something with caught exception
if isdeployed
quit(-1)
end
end