2011-06-23 9 views

Respuesta

109
  1. Puede eliminar de esta manera:

    try 
    { 
        doSomething() 
    } 
    catch (AmbiguousMatchException) 
    { 
        doSomethingElse() 
    } 
    
  2. Uso advertencia desactivar esta manera:

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

Otra advertencia familiarizado desactivar

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

Una lista de todos los errores y advertencias del compilador están disponibles en el [MSDN] (http://msdn.microsoft.com/en-US/library/ms228296 (v = VS. 80) .aspx) –

+0

La solución dada por @ fparadis2 es mejor ya que no es aconsejable suprimir las advertencias cuando podemos arreglarlo – Rama

+0

@dasariramacharanprasad esa fue mi primera sugerencia, volver a leer mi respuesta;) –

26

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

Simplemente puede eliminar el nombre.

catch(AmbiguousMatchException) 
{ 
    doSomethingElse(); 
} 
18

Simplemente puede escribir:

catch (AmbiguousMatchException) 

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

+0

+1 ¡ya que resuelve la advertencia! no explicado en [MSDN] (http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k (RETHROWTOPRESERVESTACKDETAILS); k (TargetFrameworkMoniker-% 22.NETFRAMEWORK% 2cVERSION% 3dV4.0 % 22); k (DevLang-CSHARP) & rd = verdadero). – Rama

2

El problema es que no está utilizando su variable MyException en 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.

2

Puede 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); 
+0

¿dónde se almacenará el mensaje de error? –

Cuestiones relacionadas