Execute block if an exception does not occur

3

I want to know if you have a function to execute, a block, if NOT an exception occurred in try {..} .

Example:

try {
    sout("Texto na tela");
} catch(Throwable t) {
    sout("Ocorreu uma exceção");
} casoNãoOcorraUmaExceção {
    sout("Não ocorreu uma exceção");
}

Did you understand what I meant?

    
asked by anonymous 31.05.2015 / 15:39

3 answers

3

I'm not sure if Java provides this feature directly, in any case, you can use a control variable that will indicate whether try succeeded at finally You will always check the state of the variable:

boolean naoOcorreuExcecoes = false;

try {
    // Código para executar no bloco Try
    naoOcorreuExcecoes = true;
} catch(Throwable t) {
    // Fazer algo aqui caso ocorram exceções
}finally {
    if (naoOcorreuExcecoes){
        // Fazer algo aqui caso não ocorra exceções no Try
    }
}
    
31.05.2015 / 16:05
2

The try/catch allows you to bypass the normal sequence of code execution when an exception happens. If there are no exceptions, the execution follows the normal sequence.

try {
   sout("Texto na tela");
}catch(Throwable t) {
   sout("Ocorreu uma excepção");
   //Caso não queira que o código siga após o bloco catch
   return;
}
//Continua aqui caso não haja excepção 
sout("Não houve excepção");
..... 

In addition, there is a possibility of defining a code snippet that will always be executed, whether or not there is an exception:

try {
   sout("Texto na tela");
}catch(Throwable t) {
   sout("Ocorreu uma excepção");
}
finally {  
   // Este bloco sempre será executado haja ou não excepção
}  

So, answering your question, you should use the code from the first example.

    
31.05.2015 / 16:09
0

You can put the finally block

 try {  
sout("Texto na tela");
    }  
    catch (Exception e) {  
  sout("Ocorreu uma excessão");
    }  
    finally {  
       // Faça alguma coisa aqui, esse bloco sempre será executado 


    } 
    
31.05.2015 / 15:58