Compilerwarnung (Stufe 1) CS1058
Eine vorangehende catch-Klausel fängt bereits alle Ausnahmen dieses Typs ab. Alle ausgelösten Ausnahmen werden in folgender Ausnahme umschlossen: 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. Die Warnung schlägt vor, dass der catch()
-Block keine Ausnahmen erfassen soll.
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)]
. 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. Weitere Informationen finden Sie unter Vorgehensweise: 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.
}
}
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für