How should I quit a Qt Program, e.g when loading a data file, and discovered file corruption, and user need to quit this app or re-initiate data file?
Should I:
- call
exit(EXIT_FAILURE) - call
QApplication::quit() - call
QCoreApplication::quit()
And difference between (2) and (3)?
QApplication is derived from QCoreApplication and thereby inherits
quit()which is a public slot ofQCoreApplication, so there is no difference betweenQApplication::quit()andQCoreApplication::quit().As we can read in the documentation of
QCoreApplication::quit()it "tells the application to exit with return code 0 (success).". If you want to exit because you discovered file corruption then you may not want to exit with return code zero which means success, so you should callQCoreApplication::exit()because you can provide a non-zero returnCode which, by convention, indicates an error.It is important to note that "if the event loop is not running, this function (QCoreApplication::exit()) does nothing", so in that case you should call
exit(EXIT_FAILURE).