Bonjour
j'aimerais savoir si il ya un moyen de tester le type d'une exception ?
Si oui, comment ?
Merci
Bonjour
j'aimerais savoir si il ya un moyen de tester le type d'une exception ?
Si oui, comment ?
Merci
Tu peux surement utiliser GetType():
http://msdn.microsoft.com/fr-fr/libr...pe(VS.80).aspx
j'ai déja essayé un code qui ressemble à celui-ci
à l'exécution test est égal à : Exception.try{
.......
.......
}
catch(Exception ex)
{
string test = ex.GetType().ToString();
}
Or, j'aimerais savoir si il s'agi d'un SQLException, ou autres...
Ok je ne pense pas que ce soit possible.
Le seul moyen (à ma connaissance, donc je me trompe surement) est de catch toutes les exceptions possibles...
Et si tu fais ca, est ce que ca correspond à ce que tu veux?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 catch(Exception ex) { string test = ex.Message; }
Sûr ?
Sûr sûr ?
http://msdn.microsoft.com/fr-fr/libr...t.gettype.aspx
GetType() renvoie le vrai type de l'objet, pas celui de la référence.
Normalement le GetType() devrait marcher, il me semble.
Utiliser déjà Name au lieu de ToString().
Le fonctionnement de GetType donne le type effectif de l'instance contenu dans la variable; il n'y a aucune raison pour que cela ne fonctionne pas avec les classes dérivées de Exception.
Ceci dit, il peut être intéressant d'examiner le InnerException le cas échéant; par exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 catch(Exception exception) { Type exceptionType; exceptionType = exception.GetType().; if(exceptionType == typeof(Exception) { Exception innerException = exception.InnerException; if(innerException != null) { exceptionType = innerException.GetType(); } } string exceptionTypeName = exceptionType.Name; }
Partager