¿Uso correcto de exit () en c ++?

He escrito una aplicación sencilla que lee un archivo de datos, analiza el texto y luego realiza un procesamiento de esos datos. El archivo de datos se abre en mi función principal (). ¿Es una buena práctica de programación usar la función exit () si se determina que el archivo no se abrió correctamente? p.ej:

if (!file.is_open() ){
     exit(1);
}

Además, mi programa tiene una función separada para analizar los datos en el archivo. Esta función es llamada por main (). Si la función encuentra un error en los datos, quiero que el programa se detenga, después de imprimir un mensaje de error. En tal situación, ¿es aceptable usar la función exit () dentro de mi función de análisis? Estoy haciendo esta pregunta porque, para mí, no parece ser muy ordenado permitir que una función salga de un programa por sí sola sin devolver el control a la función main (). (Pido disculpas si esta pregunta parece bastante obvia ... Soy nuevo en C ++ y en la programación en general).

Respuestas a la pregunta(6)

Su respuesta a la pregunta