Godzil (./71) :
• Godzil resté bloqué la dessus..
Explication: la section
finally est toujours exécutée en quittant le bloc, pour quelle raison que ce soit. Or,
return true; quitte le bloc. Du coup,
avant de retourner
true (logique, c'est prévu pour les nettoyages – après avoir retourné, c'est trop tard!), la section
finally est exécutée, qui elle contient
return false;. Et donc
false est retourné et la valeur de retour d'origine est jetée.
(Maintenant, si tu essaies d'écrire ça, c'est-à-dire:
TRY
return true;
FINALLY
return false;
ENDFINAL
sous TIGCC ou GCC4TI, ça va carrément planter la calculatrice (ou la mettre dans un état instable qui plantera tôt ou tard), parce qu'on n'a pas le droit de quitter un
TRY par un saut ou
return sans appeler
ER_success(); avant. Et si tu fais:
TRY
ER_success();
return true;
FINALLY
return false;
ENDFINAL
alors ça va retourner
true parce que tu as désactivé le
TRY en appelant
ER_success();.)