J'espère que quelqu'un peut m'aider. J'ai une exception spécifique de COM que j'ai besoin d'attraper et d'essayer de faire quelque chose d'autre, tous les autres devraient être ignorés. Mon message d'erreur à l'exception est:Attraper COMException spécifique Code d'erreur
System.Runtime.InteropServices.COMException (0x800A03EC): Microsoft Office Excel ne peut pas accéder au fichier 'C: \ test.xls'. Il y a plusieurs raisons possibles:
Ma première tentative a été
try
{
// something
}
catch (COMException ce)
{
if (ce.ErrorCode == 0x800A03EC)
{
// try something else
}
}
Cependant je lu un avertissement du compilateur:
Avertissement 22 Comparaison intégrale constante est inutile; la constante est en dehors de la plage de type « int » ..... ExcelReader.cs 629 21
Maintenant, je sais que le 0x800A03EC est le HResult et je l'ai juste regardé sur MSDN et lire:
HRESULT est une valeur de 32 bits, divisé en trois domaines différents: un code de sévérité , un code d'établissement, et un code d'erreur . Le code de gravité indique si la valeur de retour représente une information, un avertissement ou une erreur . Le code d'installation identifie la zone du système responsable de l'erreur .
Donc, ma question ultime, est comment puis-je m'assurer que je piège cette exception spécifique? Ou comment puis-je obtenir le code d'erreur de HResult?
Merci d'avance.
Juste pour ajouter une note. Il n'est pas très facile de reproduire cette exception car j'ai besoin d'une configuration très spécifique pour cela, mais je pensais que demander ici pourrait être plus rapide :) – Ian