web-dev-qa-db-fra.com

La variable 'MyException' est déclarée mais jamais utilisée

Je dois effacer cet avertissement:

try
{
    doSomething()
}
catch (AmbiguousMatchException MyException)
{
    doSomethingElse()
}

Le compilateur me dit: 

Comment puis-je réparer cela.

How can I fix this.

62
Wassim AZIRAR
  1. Vous pouvez l'enlever comme ceci:

    try
    {
        doSomething()
    }
    catch (AmbiguousMatchException)
    {
        doSomethingElse()
    }
    
  2. Utilisez avertissement désactiver comme ceci:

    try
    {
        doSomething()
    }
    #pragma warning disable 0168
    catch (AmbiguousMatchException exception)
    #pragma warning restore 0168
    {
        doSomethingElse()
    }
    

Autre avertissement familier désactivé

#pragma warning disable 0168 // variable declared but not used.
#pragma warning disable 0219 // variable assigned but not used.
#pragma warning disable 0414 // private field assigned but not used.
122
Jalal Said

Vous déclarez un nom pour l'exception, MyException, mais vous ne faites jamais rien avec elle. Comme il n'est pas utilisé, le compilateur le signale.

Vous pouvez simplement supprimer le nom.

catch(AmbiguousMatchException)
{
   doSomethingElse();
}
33
Khepri

Vous pouvez simplement écrire:

catch (AmbiguousMatchException)

et omettez le nom de l'exception si vous ne l'utilisez pas dans la clause catch.

20
fparadis2

Vous pouvez écrire l'exception dans un journal si vous en avez une en cours d'exécution. Pourrait être utile pour dépister tous les problèmes.

Log.Write("AmbiguousMatchException: {0}", MyException.Message);
2
Neil

Le problème, c'est que vous n'utilisez pas votre variable MyException nulle part. Il est déclaré, mais n'est pas utilisé. Ce n'est pas un problème ... juste le compilateur vous donnant un indice au cas où vous auriez l'intention de l'utiliser.

2
Brad

but never used signifie que vous devriez l'utiliser après catch (), par exemple pour écrire sa valeur sur la console, ce message d'avertissement disparaîtra.

catch (AmbiguousMatchException MyException)
{
    Console.WriteLine(MyException); // use it here
}
0
Ray Chakrit