Selon la norme ECMA-262 (5ed, décembre 2009), en pages 96 :
La production TryStatement : try Block Finally
est évalué comme suit :
- Soit B le résultat de l'évaluation de Block.
- Soit F le résultat de l'évaluation de Finally.
- Si le type F.est normal, renvoyer B.
- Retour F.
Et à partir de la page 36 :
Le type Completion est utilisé pour expliquer le comportement des déclarations ( break
, continue
, return
y throw
) qui effectuent des transferts de contrôle non locaux. Les valeurs du type Completion sont des triples de la forme (type, valeur, cible) , donde type est l'un des normal
, break
, continue
, return
ou throw
, valeur est une valeur quelconque du langage ECMAScript ou vide, et cible est un identifiant ECMAScript quelconque ou vide.
Il est clair que return false
définirait le type d'achèvement de enfin como retourner qui provoquent try ... finally
à faire 4. Retour F .
2 votes
Pour les autres, faites le retour false dans le bloc catch, pas finally.