Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Předchozí klauzule catch již zachytí všechny výjimky. Všechny vyvolané výjimky budou zabaleny v system.Runtime.CompilerServices.RuntimeWrappedException
Tento atribut způsobí CS1058, pokud catch()
blok nemá po bloku žádný zadaný typ catch (System.Exception e)
výjimky. Upozornění doporučuje, aby catch()
blok nezachytil žádné výjimky.
Blok catch()
za catch (System.Exception e)
blokem může zachytit výjimky jiné než CLS, pokud RuntimeCompatibilityAttribute
je nastavena na false v souboru AssemblyInfo.cs: [assembly: RuntimeCompatibilityAttribute(WrapNonExceptionThrows = false)]
. Pokud tento atribut není explicitně nastaven na false, všechny vyvolané výjimky bez CLS jsou zabaleny jako Výjimky a catch (System.Exception e)
blok je zachytí. Další informace naleznete v tématu Jak zachytit výjimku jiného typu než CLS.
Příklad
Následující příklad vygeneruje 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.
}
}