Compilerwarnung (Stufe 1) CS1058Compiler Warning (level 1) CS1058

Eine vorangehende catch-Klausel fängt bereits alle Ausnahmen dieses Typs ab.A previous catch clause already catches all exceptions. Alle ausgelösten Ausnahmen werden in folgender Ausnahme umschlossen: System.Runtime.CompilerServices.RuntimeWrappedExceptionAll exceptions thrown will be wrapped in a System.Runtime.CompilerServices.RuntimeWrappedException

Dieses Attribut löst CS1058 aus, wenn ein catch()-Block nach einem catch (System.Exception e)-Block keinen bestimmten Ausnahmetyp aufweist.This attribute causes CS1058 if a catch() block has no specified exception type after a catch (System.Exception e) block. Die Warnung schlägt vor, dass der catch()-Block keine Ausnahmen erfassen soll.The warning advises that the catch() block will not catch any exceptions.

Ein catch()-Block nach einem catch (System.Exception e)-Block kann Nicht-CLS-Ausnahmen erfassen, wenn RuntimeCompatibilityAttribute in der Datei „AssemblyInfo.cs“ auf FALSE festgelegt ist: [assembly: RuntimeCompatibilityAttribute(WrapNonExceptionThrows = false)].A catch() block after a catch (System.Exception e) block can catch non-CLS exceptions if the RuntimeCompatibilityAttribute is set to false in the AssemblyInfo.cs file: [assembly: RuntimeCompatibilityAttribute(WrapNonExceptionThrows = false)]. Wenn dieses Attribut nicht explizit auf FALSE festgelegt ist, werden alle ausgelösten Nicht-CLS-Ausnahmen als Ausnahmen umschlossen und vom catch (System.Exception e)-Block erfasst.If this attribute is not set explicitly to false, all thrown non-CLS exceptions are wrapped as Exceptions and the catch (System.Exception e) block catches them. Weitere Informationen finden Sie unter Vorgehensweise: Abfangen einer Nicht-CLS-Ausnahme.For more information, see How to: Catch a non-CLS Exception.

BeispielExample

Im folgenden Beispiel wird CS1058 generiert.The following example generates CS1058.

// CS1058.cs  
// CS1058 expected  
using System.Runtime.CompilerServices;  

// the following attribute is set to true by default in the C# compiler  
// set to false in your source code to resolve CS1058  
[assembly: RuntimeCompatibilityAttribute(WrapNonExceptionThrows = true)]  

class TestClass   
{  
   static void Main()   
   {  
      try {}  

      catch (System.Exception e) {   
         System. Console.WriteLine("Caught exception {0}", e);  
      }  

      catch {}   // CS1058. This line will never be reached.  
   }  
}