variable valor utiliza tag que haya asignado antes c# .net exception frameworks ambiguity

c# - tag - la variable se utiliza antes que se le haya asignado un valor



La variable ''MyException'' se declara pero nunca se usa (5)

Necesito borrar esta advertencia:

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

El compilador me está diciendo:

La variable ''MyException'' se declara pero nunca se usa

Cómo puedo arreglar esto.


  1. Puedes eliminarlo así:

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

  2. Use la advertencia de desactivación de esta manera:

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

Otra desactivación familiar de advertencia

#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.


El problema es que no estás usando tu variable MyException ninguna parte. Se declara, pero no se usa. Esto no es un problema ... solo el compilador te da una pista en caso de que quisieras usarlo.


Podría escribir la excepción en un registro si tiene uno en ejecución. Puede ser útil para rastrear cualquier problema.

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


Simplemente puede escribir:

catch (AmbiguousMatchException)

y omita el nombre de la excepción si no lo va a usar en la cláusula catch.


Usted declara un nombre para la excepción, MyException, pero nunca hace nada con eso. Como no se usa, el compilador lo señala.

Simplemente puede eliminar el nombre.

catch(AmbiguousMatchException) { doSomethingElse(); }