"L'exception n'a pas été générée"

Fermé
Nuev Messages postés 8 Date d'inscription mardi 26 février 2013 Statut Membre Dernière intervention 5 mars 2013 - 26 févr. 2013 à 18:28
Nuev Messages postés 8 Date d'inscription mardi 26 février 2013 Statut Membre Dernière intervention 5 mars 2013 - 26 févr. 2013 à 22:59
Bonjour,


J'ai un programme très simple dans lequel je souhaiterais lever un exception dès que j'ai un problème.

Au plus bas de la couche de mon code, je throw un new AppException (classe faite par moi meme mais qui hérite de Exception), et lorsque j'exécute mon programme pour vérifier ma gestion des exceptions, il me dit "L'exception AppException n'a pas été gérée" et il me marque en dessous le message de l'AppException que j'ai créé dans le throw.

Dans les niveaux au dessus, qui appellent ma fonction qui throw cette new AppException, j'ai fait des try/catch :
catch (Exception e)
{
throw e;
}



Qu'est ce que signifie "L'exception n'a pas été levée" ? Qu'est-ce que je dois faire pour avoir à la place un message de VisualStudio me disant "L'exception AppException s'est produite" ?

Merci d'avance !

8 réponses

totodunet Messages postés 1377 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 5 mars 2020 199
Modifié par moska le 28/02/2013 à 10:55
ça ressemble plus à du java ou du C ton code
essaye avec catch(InterrupedException e){}
il y a quoi dans ton try ?
as-tu bien importé les outils nécessaires ?

Signature hors charte - Supprimée par la modération
0
Nuev Messages postés 8 Date d'inscription mardi 26 février 2013 Statut Membre Dernière intervention 5 mars 2013
26 févr. 2013 à 20:59
Dans mon try, je parcours deux tableaux pour en faire la moyenne des valeurs contenues dedans.

Mais j'ai remarqué un truc en essayant de chercher par moi meme : lors que je throw une
new Exception ("my_message")
j'ai bien le message d'erreur de Visual me disons "l'exception Exception s'est produite" avec dans la variable $exception mon message d'erreur (ce que je veux !).

Mais si, à exactement la même ligne je fais un throw de
new AppException ("my_message", e);
, j'ai le message "l'exception AppException n'a pas été gérée".

Ma classe AppException ressemble à cela :


public class AppException : Exception
    {
        public AppException(String message, Exception ex) : base(message)
        {
            
        }
    }


C'est mon professeur qui nous a imposé le prototype du constructeur, et le base(message) m'a été conseillé mais je ne comprends pas à quoi il sert...
0
totodunet Messages postés 1377 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 5 mars 2020 199
26 févr. 2013 à 22:13
fait appel à la procédure base(), le base(message)
je sais pas à quoi non plus elle sert

donc AppException est une classe présentant le type Exception qui fait appel à la procédure AppException() ayant pour paramètre le message de type String et ex de type Exception ???

new Exception("my_message") marche
enlèves le new et fait juste AppException(message,e);
voir

0
Nuev Messages postés 8 Date d'inscription mardi 26 février 2013 Statut Membre Dernière intervention 5 mars 2013
26 févr. 2013 à 22:18
Je ne peux pas enlever le new, ça ne marche pas sinon...

Je me demande en fait si quand on fait nos propres exceptions, on n'a pas toujours le mesage "L'exception ... n'a pas été gérée"... Parce que en mettant juste le new Exception ("my_message"), ça marche... J'ai peut etre mal implémenté ma classe AppException ?
Je n'ai mis que le constructeur, aucune autre méthode
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
totodunet Messages postés 1377 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 5 mars 2020 199
26 févr. 2013 à 22:36
en fait tu as raison tu as peut-être fini

parce que le new Exception déclare une exception que tu as présenté dans le constructeur et donc qui fait appel à AppException(). Le base(message) sert donc justement à faire new Exception(message) car seul message est une variable que tu peux définir
En fait Exception est tout simplement un objet
si tu veux faire new AppException(message) il faut que tu renomme dans ta class l'objet :
public class AppException : AppException
0
Nuev Messages postés 8 Date d'inscription mardi 26 février 2013 Statut Membre Dernière intervention 5 mars 2013
26 févr. 2013 à 22:42
Je ne peux pas faire cela, car sinon je n'hérite plus de Exception pour AppException... :s

Mon prof a donné aucune explication sur le fonctionnement de cette classe et chu un peu perdue...

Tout ce que je sais c'est que VS me sort un "L'exception n'a pas été gérée", et je sais même pas ce que ça veut dire. Alors qu'en remplaçant par un new Exception tout simple, VS me dit que "l'exception Exception s'est produite"... Je suis perplexe
0
totodunet Messages postés 1377 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 5 mars 2020 199
Modifié par noctambule28 le 27/02/2013 à 20:10
bah là moi aussi j'avoue que je suis paumé :(

"L'exception n'a pas été gérée" veut dire que ton throw, à l'endroit où il est placé, ne peut exécuter l'exception (soit erreur de code, soit throw mal placé)

Qui ne tente rien n'a rien -
0
Nuev Messages postés 8 Date d'inscription mardi 26 février 2013 Statut Membre Dernière intervention 5 mars 2013
26 févr. 2013 à 22:59
Oui ! pourtant le throw new Exception marche bien :'(
Ca ne peut pas etre mon exception AppException qui est mal codée, je n'ai qu'un constructeur dedans
0