Question post-assertion et exception

Programmation Avancée

Modérateur : douinj

charp_n1
Messages : 33
Inscription : 07 oct. 2020 17:35

Question post-assertion et exception

Message par charp_n1 » 17 déc. 2020 2:45

Bonjour à tous,

Je comprends le principe de test de l'exception dans une post-assertion (diapositive 59 du 08/12 - patron décorateur), mais je ne saisis pas bien ce qu'il se passe vraiment derrière un throw puis un finally.

Code : Tout sélectionner

public void ajouter(int element){
    InitialiserLesVariables();// i.e. tailleAvant… 

    assert pre_assertion(element);
    Exception cause =null;
    try{
      super.ajouter(element); // la liste est bornée … 
                              // alors une exception est possible
    }catch(Exception e){
      cause = e;
      throw e;                // l’exception est propagée	===> ##### EN DEUXIEME ?
    }finally{							
      assert post_assertion(cause);				===> ##### EN PREMIER ?
    }
Je croyais qu'un throw déroutait immédiatement le programme, ce qui empêcherait dans l'exemple ci-dessus de passer dans la post-assertion.
Cela signifie-t-il qu'on exécute d'abord le finally, ensuite le throw ?


J'espère avoir été clair.
Merci pour vos réponses.

douinj
Messages : 263
Inscription : 18 mars 2009 15:46

Re: Question post-assertion et exception

Message par douinj » 17 déc. 2020 11:13

Bonjour, oui, le finally est exécuté avant la propagation de l’exception, quoiqu'il arrive (une exception ou non)

Bonne post-assertion

https://docs.oracle.com/javase/tutorial ... nally.html

The finally block always executes when the try block exits. This ensures that the finally block is executed even if an unexpected exception occurs. But finally is useful for more than just exception handling — it allows the programmer to avoid having cleanup code accidentally bypassed by a return, continue, or break. Putting cleanup code in a finally block is always a good practice, even when no exceptions are anticipated.

charp_n1
Messages : 33
Inscription : 07 oct. 2020 17:35

Re: Question post-assertion et exception

Message par charp_n1 » 17 déc. 2020 12:02

Merci

Répondre