Parar um processamento - resolvido

Tenho um processamento com uma classe chamando uma outra.

Exemplo:

Tenho a registro0100. Nela chamo o ED022, ED021, etc…

Nesta ED022, tenho umas validações, exemplo:

boolean achou = false;
if (modulo.equals("2")) {
	String[] linhaSeparada = listaParametros.get(5).split(Pattern.quote("|"));
	if (linhaSeparada[0].equals(tipoCnso)) {
		achou = true;
	}
}
if (!achou) {
	apontandoErroAlerta(arquivo, erroAlerta, tipoRegistroCampo, tipoRegistro, erroAlertaEncontradoRepository,
	erroAlertaCampoEncontradoRepository, tipoCnso, contadorLinha, registro, erroAlertaRepository,
	tipoRegistroCampoRepository, tipoRegistroRepository);
        return;
}

Se a variável achou vira true, ele aponta o erro e deveria parar o processo. Mas não para.

Não deveria ir para o erro ED021, mas vai.

Como fazer para parar o processo mesmo.

Cara para mim não deu para entender como vc quer fazer algo
mas o método apontandoErrorAlerta está em um if que só será executado se achou for false

Você poderia colocar o código mais completo?

Isto seria um exemplo.

Queria saber como para um processo iniciado, que seja em qualquer classe, sem se por retorno.

Vou tentar melhorar o exemplo.

Tenho as classes registro0100, ED022, ED021, ED023 e Erro

O processo inicia na classe registro0100.

A classe registro0100, chama a classe ED022

Se a classe ED022, tiver erro chamar a classe Erro e para o processo na classe Erro
Se a classe ED022 não tiver erro chama a classe ED021

Se a classe ED021, tiver erro chamar a classe Erro e para o processo na classe Erro
Se a classe ED021 não tiver erro chama a classe ED023

Se a classe ED023, tiver erro chamar a classe Erro e para o processo na classe Erro
Se a classe ED023 finalizou corretamente

Conseguiu entender ?

Bom jovem, mas esse é o objetivo do retorno é você fazer algo dependendo do tipo do retorno!
o mais certo seria: já que os processo ocorre iniciado pelo o registro0100 então devo supor que ele é o principal onde se iniciar os processamentos, então ele chama a classe ED022 e espera um retorno da classe se ela retornar um valor false(Você pode criar o tipo de retorno que quiser ) por exemplo então a classe que tá fazendo o processamento principal que é a registro0100 chama a classe Erro e lá mesmo tu para o script e faz mais nada, ou então exibi uma mensagem e pronto para ali.
Caso o a classe ED022 retorne true, então a classe registro0100 chama a classe ED021 e assim por diante até chegar o script ao fim.
Ex:

public class Registro0100 {

    public static void main(String[] args) {
        //inicio do processamento
        //instaciando a classe erro
        Erro classe_error = new Erro();

        ED022 classe1 = new ED022();
        if (classe1.executar_processos()) {
            //então executou com sucesso sem erro
            ED021 classe2 = new ED021();
            if (classe2.executar_processos()) {

            } else {
                classe_error.executa_processo_de_error();
            }
        } else {
            //deu erro e chama a classe de error
            classe_error.executa_processo_de_error();
        }

    }

}

Assim se tornando um encadeamento de ifs

Então não tem como fazer o que quero, isto é, de parar o processamento na classe erro ?

Pelo que eu entendi, basta apenas você colocar um break onde deseja encerrar o processo.

Já tinha tentando, mas não deixa.

Já tentou lançar uma Exception ?

Não. como seria ?

É algo como:

if(erro == true){
    throw new RuntimeException("Erro detectado, parando processamento");
}

Não funcionou

Está assim

public abstract class InserirErroLinha {
	public static void apontandoErroAlerta(ArquivoEntity arquivo, ErroAlertaEntity erroAlerta,
			TipoRegistroEntity tipoRegistro, TipoRegistroCampoEntity tipoRegistroCampo,
			ErroAlertaEncontradoRepository erroAlertaEncontradoRepository,
			ErroAlertaCampoEncontradoRepository erroAlertaCampoEncontradoRepository,
			TipoErrosAlertasEncontradosEnum tipoErro, String valorLinha, Integer contadorLinha, List<String> cabecalho,
			List<String> valores) {
		ErroAlertaEncontradoController.setErroAlertaCampoEncontradoRepository(erroAlertaCampoEncontradoRepository);
		ErroAlertaEncontradoController.setErroAlertaEncontradoRepository(erroAlertaEncontradoRepository);
		ErroAlertaEncontradoController.salvarErroAlertaEncontrado(erroAlerta, tipoRegistro, tipoRegistroCampo,
				contadorLinha, valorLinha, arquivo, arquivo.getEntidade(), arquivo.getIdentificacao(),
				arquivo.getUsuario(), tipoErro, cabecalho, valores);
		throw new RuntimeException("Erro detectado, parando processamento");
	}
}

Bom geralmente você para o processamento, na classe que está fazendo este processamento principal, o exemplo que usei o processamento está ocorrendo na classe Registro0100, você poderia me informar, ou enviar o código onde tá ocorrendo esse processo principal?

Ai no fins da conta é tipo um retorno, só que o retorno é uma exceção e deve ser tratada com um Try Catch

Pelo visto vai ter que ter retorno mesmo ?

a melhorar maneira que eu vejo para isso é o tratamento de acordo com o retorno, e vc deve tratar essa retorno onde está ocorrendo o processamento principal