Fordító figyelmeztetés (1. szint) CS1058

Egy korábbi fogási záradék már minden kivételt kifog. Az összes kidobott kivétel be lesz csomagolva egy System.Runtime.CompilerServices.RuntimeWrappedException fájlba

Ez az attribútum CS1058-at okoz, ha egy catch() blokk nem rendelkezik megadott kivételtípussal egy catch (System.Exception e) blokk után. A figyelmeztetés azt jelzi, hogy a catch() blokk nem fog kivételeket észlelni.

A catch() blokk utáni catch (System.Exception e) blokkok nem CLS-kivételeket észlelhetnek, ha az RuntimeCompatibilityAttribute AssemblyInfo.cs fájlban hamis értékre van állítva: [assembly: RuntimeCompatibilityAttribute(WrapNonExceptionThrows = false)]. Ha ez az attribútum nincs explicit módon hamisra állítva, a rendszer kivételként csomagolja be az összes nem CLS-kivételt, és a catch (System.Exception e) blokk elkapja őket. További információ: A nem CLS-kivételek elfogása.

Példa

Az alábbi példa CS1058-at hoz létre.

// 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.  
   }  
}