Il faut attraper les exceptions de type OptimisticeLockException
dans le backing bean. Afficher un message d'erreur. Arrangez-vous pour que ce message soit bien affiché à l'utilisateur.
Il ne faut pas attraper l'exception dans la méthode update
du bean CDI GestionnaireCompte
qui ne connait pas le contexte. Il faut l'attraper dans le backing bean.
Puisque OptimisticLockException
est une exception runtime, il est inutile de modifier la méthode update
de GestionnaireCompte
en ajoutant une clause throws
pour indiquer qu'une exception de type OptimisticeLockException
peut être lancée par la méthode (voir cours de Java sur les exceptions).
Pour faciliter la vie de l'utilisateur on pourrait aussi lui proposer de réessayer le mouvement qu'il voulait faire, en rechargeant la page sur laquelle il était (mouvement.xhtml) ou bien de réafficher la liste de tous les comptes, ou bien même lui proposer d'enregistrer son opération (il faudra avant recharger la nouvelle version du compte). Vous pouvez coder votre propre solution ; elle dépend du contexte et des règles de gestion de l'entreprise.
Ce code affiche seulement un message d'erreur à l'utilisateur.