Salut à tous,
Une petite question, est il possible de lever une exception et de continuer ensuite le traitment?
par exemple :
j'aimerai que le return soit éxécuté, y'a t'il une solution?Code:
1
2
3 throws new Exception(''); return;
Merci.
Version imprimable
Salut à tous,
Une petite question, est il possible de lever une exception et de continuer ensuite le traitment?
par exemple :
j'aimerai que le return soit éxécuté, y'a t'il une solution?Code:
1
2
3 throws new Exception(''); return;
Merci.
Non, et ça n'a aucun sens :koi:
throw modifie le flow du programme, tout comme break et return ...
La levée d'une exception arrête l'exécution normale des commandes suivantes.
Soit tu lèves une exception, soit ta méthode renvoie une valeur.
Une exception signifie que le programme a rencontrer un problème et ne peut pas continuer.
Tu dois donc revoir ta conception pour cette méthode ;)
EDIT : trop lent :aie:
Je viens me prendre un bug, après l'affichage d'une pop-up d'erreur (gérer par le catch de mon exception) l'usager doit pouvoir continuer le traitement.
J'ésperai qu'il éxiste une solutions miracle..
Je suis obligé de bouger toute l'architecture..
Merci de votre aide.
J'imagine que le traitement est placé juste après le throw ? et donc quand l'exception est envoyée, il y a l'affichage du popup mais plus le traitement ?
Il faudrait savoir si :
?
- tu considères ton archi générale bonne, et il s'agit là d'une petite boulette que tu souhaiterais contourner, même au prix d'une entourloupe.
- l'archi générale est mauvaise, il y a partout dans ton code des problèmes de ce type, et il vaut mieux la revoir.
ben je ne sais pas si ça répond à la question, mais tu peux faire quelque chose comme :
c'est pas ça que tu veux faire ?Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 methode1() throws Exception { // ... throw new Exception("Houlà !"); } methode2() { // debut traitement try { methode1(); } catch (Exception e) { // traitement de l'erreur, affichage ... } // et hop on continue // éventuellement dans un bloc finally, si le code // doit toujours être exécuté ... }
:google: N'oublie pas que Google est ton ami : Bloc try/catch/finally.Code:
1
2
3
4
5
6
7
8
9 try { //Code suceptible de générer une erreur } catch (Exception) { //Traitement des erreurs } finally { //Code éxecuté de toute manière, que l'on soit passé par catch ou pas //Il est utile pour terminer le programme proprement //par exemple : fermer la connexion à la base de données }