Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Aktualisiert: November 2007
Fehlermeldung
Eine vorherige catch-Klausel hat bereits alle Ausnahmen abgefangen. Alle ausgelösten Ausnahmen werden in eine System.Runtime.CompilerServices.RuntimeWrappedException eingebunden.
A previous catch clause already catches all exceptions. All exceptions thrown will be wrapped in a System.Runtime.CompilerServices.RuntimeWrappedException
Dieses Attribut löst die Warnung CS1058 aus, wenn ein catch()-Block über keinen angegebenen Ausnahmetyp nach einem catch (System.Exception e)-Block verfügt. Die Warnung besagt, dass der catch()-Block keine Ausnahmen abfängt.
Ein catch()-Block nach einem catch (System.Exception e)-Block kann Nicht-CLS-Ausnahmen abfangen, wenn das RuntimeCompatibilityAttribute in der Datei AssemblyInfo.cs auf false festgelegt ist: [assembly: RuntimeCompatibilityAttribute(WrapNonExceptionThrows = false)]. Wenn dieses Attribut nicht explizit auf false festgelegt ist, werden alle ausgelösten Nicht-CLS-Ausnahmen als Ausnahmen eingebunden und vom catch (System.Exception e)-Block abgefangen. Weitere Informationen finden Sie unter Gewusst wie: Abfangen einer Nicht-CLS-Ausnahme.
Beispiel
Im folgenden Beispiel wird CS1058 generiert.
// 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.
}
}