Uso correto de exit () em c ++?

Eu escrevi um aplicativo simples que lê um arquivo de dados, analisa o texto e faz algum processamento nesses dados. O arquivo de dados é aberto na minha função main (). É uma boa prática de programação usar a função exit () se for determinado que o arquivo não foi aberto corretamente? por exemplo:

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

Além disso, meu programa tem uma função separada para analisar os dados no arquivo. Esta função é chamada por main (). Se a função encontrar um erro nos dados, eu quero que o programa pare, depois de imprimir uma mensagem de erro. Em tal situação, é aceitável usar a função exit () dentro da minha função de análise? Estou fazendo essa pergunta porque, para mim, não parece ser muito arrumado permitir que uma função saia de um programa por conta própria sem retornar o controle à função main (). (Peço desculpas se esta pergunta parece bastante óbvia .. Eu sou novo em C ++ e programação em geral).

questionAnswers(6)

yourAnswerToTheQuestion