begin process at 2012 02 10 02:48:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Système

 > 

Autre

 > 

Redéfinition de mon exception


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Redéfinition de mon exception

vendredi 9 mars 2007 à 18:03:09 | Redéfinition de mon exception

BackPack

Bonjour à tous,

J'ai une petite question. Je sais pas si c'est parce que j'ai pas
les yeux en face des trous aujourd'hui mais je n'arrive pas à
faire un truc qui pourtant devrait être relativement simple.

Voici mon problème:

J'aimerais faire le Catch d'une exception puis redéfinir son message
sans perdre son type.

Exemple:

Dans mon code je lève une exception :

throw new ThreadStateException ("mon message");

Dans mon code je trappe les exception.
try
}
...
}
Catch(Exception ex)
{

}

C'est là que ça ce gâte....

Dans mon catch si je regarde le type de ex j'obtient ThreadStateException

Si je veux redefinir mon message exemple

Exception NewEx = newException(ex.Message.ToString() + "Suite de mon message" ,ex);

C'est bien mais maitenant, si je regarde le type de NewEx il est maintenant de type Exception

Je compred bien le pourquoi mais j'aiemrais savoir comment ne pas perdre son type.

Ne me repondez pas de faire ThreadStateException NewEx = newThreadStateException(ex.Message.ToString() + "Suite de mon message" ,ex);

Car le but est que je ne connaitrait pas son type avant le catch.

Bref si quelqu'un me comprend merci de bien voulaoir m'aider.

@ +

Backpack






vendredi 9 mars 2007 à 18:19:17 | Re : Redéfinition de mon exception

Lutinore

Administrateur CodeS-SourceS
Salut, une exception ne contient pas seulement un message ( en lecture seule ) , il peut y avoir un HRESULT par exemple ou n'importe qu'elle autre propriété.. le mieux je pense que c'est d'utiliser la propriété InnerException.




try
{
    throw new ThreadStateException( " ... " );
}
catch ( Exception ex )
{
    // l'exception est placée dans InnerException.
    throw new ApplicationException( " ... ", ex );
}
vendredi 9 mars 2007 à 18:20:20 | Re : Redéfinition de mon exception

Nurgle

Membre Club Administrateur CodeS-SourceS
Salut,

Tu ne peux pas modifier l'exception ! Soit :
- tu fais un throw; et elle est renvoyée telle quelle
- ou alors tu crées une deuxième Exception en lui passant la 1ère, comme tu as fait.

Si tu en crées une deuxième, ton exception sera donc de type Exception mais sa propriété InnerException te renverra l'exception originale... ce qui te permet d'avoir ta propre Exception (avec ton message d'erreur, etc...) mais contenant également l'Exception originale :)

Bonne journée,
A++


Nurgle (Antoine) - MSP
vendredi 9 mars 2007 à 18:24:22 | Re : Redéfinition de mon exception

Nurgle

Membre Club Administrateur CodeS-SourceS
arf Lutinore, j'avais pô refresh à temps...



Nurgle (Antoine) - MSP
vendredi 9 mars 2007 à 18:25:56 | Re : Redéfinition de mon exception

Lutinore

Administrateur CodeS-SourceS
En même temps moi j'ai été trop vite j'avais pô vu qu'il utilisait déja la propriété InnerException .
vendredi 9 mars 2007 à 18:40:12 | Re : Redéfinition de mon exception

Lutinore

Administrateur CodeS-SourceS
Réponse acceptée !

On peut jouer avec la reflexion.. mais bon..




try
{
    throw new ThreadStateException( " ... " );
}
catch ( Exception ex )
{
    Exception newEx = ( Exception )Activator.CreateInstance
    (
        ex.GetType( ),
        " ... " + ex.Message
    );

    throw newEx;
}

vendredi 9 mars 2007 à 19:47:31 | Re : Redéfinition de mon exception

BackPack

Salut Lutinore et Nurgle,

Tout d'abord un gros merci à vous deux pour
votre aide.

Finalement, Lutinore ta solution avec la réflexion
a résolu mon problème et a fais de moi un homme 
heureux  HEHE

Je ne connaissais pas Activator et je dois dire que
grâce à toi maintenant je vais lui trouver toute sorte
d'activitée  Heu par contre...ce qui me fais peur,
c'est pourquoi tu dit "mais bon..." dans ta réponse.
Dois-je me méfier de quelque chose ???

@ +
Backpack

vendredi 9 mars 2007 à 20:04:11 | Re : Redéfinition de mon exception

Lutinore

Administrateur CodeS-SourceS
Pas vraiment..  mais la reflexion c'est quand même un mécanisme de haut niveau pas forcement très rapide qui "casse" un peu les règles de la programmation orientée objet, j'ai tendance à l'utiliser seulement quand il s'agit de vraiment obtenir des infos sur les types à l'execution.


Cette discussion est classée dans : message, type, ex, catch, exception


Répondre à ce message

Sujets en rapport avec ce message

c sharp [ par verbeyst ] Le bout de code suivant m'affiche un message erreur que je ne comprends pasle message est "value cannot be null    parameter name : bytes"veuillez m'a Exception [ par babe59 ] Bonjour,j'ai définie une méthode "MethodeA" qui génère des exceptions que j'ai définie  dont voici la description :public<font color="#0000ff" Fermeture application [ par thebigboss ] Bonjour,j'ai un petit soucis, je suis en train de développer une petite appli à base de Thread, de TCPClient, de NetworkStream, de TCPListener et de S datagridviewcheckbox [ par gabs77 ] Bonjour,J'utilise une datagridview avec une column checkbox et je ne parviens pas à l'utiliser !!en fait je veux tester si la ligne est coché afin de Unhandled Thread Exception [ par Lutinore ] Salut..protected override void OnClick( EventArgs e ) // Click sur une forme.{    //base.OnClick( e );     try    {        Thread t = new Thread( ne un coup de main sous Access [ par rick4320 ] Bonjour, voici ma question : j'ai un fichier Excel 2007 qui comporte 6500 enregistrements. il se compose de colonnes ex:client site étage numéro dépa Erreur de serveur [ par totodude ] Bonjour tout le monde,j'ai dans une application une erreur du serveur.Voici les 2 premières lignes de la trace de ma pile.[IndexOutOfRangeException: Exception sur l'ouverture d'un fichier excel [ par julien67 ] Salut à tous ! Je cherche à afficher dans un winform des valeurs que je récupère dans un fichiere excel... malgré de nombreuses recherches je reste bl Comment obliger le catch d'une exception? [ par tominfo ] Salut, Je cherche à savoir comment on indique à une méthode qu'elle est suscpetible de jetter une exception et que l'objet qui l'appelle soit obligé probleme de dll [ par nicotom ] Bonjour à tousJe suis en train de réaliser un logiciel sous VS2003 qui comporte environ 25 classes.Mon but est de remplacer ces classes par une dll.J'


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,416 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales