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.
Poznámka:
Tento obsah je znovu vytištěn oprávněním Pearson Education, Inc. z Framework Design Guidelines: Conventions, Idioms a Patterns for Reusable .NET Libraries, 2. vydání. Tato edice byla publikována v roce 2008 a kniha byla od té doby plně upravena ve třetím vydání. Některé informace na této stránce můžou být zastaralé.
Tato část popisuje standardní výjimky poskytované architekturou a podrobnosti o jejich použití. Seznam není vyčerpávající. Informace o použití jiných typů výjimek rozhraní Framework najdete v referenční dokumentaci k rozhraní .NET Framework.
Výjimka a SystemException
❌ Nevyhazujte System.Exception nebo System.SystemException.
❌ NEODCHYTÁVEJTE System.Exception ani System.SystemException v rámci kódu, pokud nemáte v úmyslu znovu vyhodit výjimku.
❌ VYHNĚTE se zachytávání System.Exception ani System.SystemException, pokud nejde o obslužné rutiny pro výjimky nejvyšší úrovně.
ApplicationException
❌ NEPOUŽÍVEJTE vyvolání nebo odvozování z ApplicationException.
InvalidOperationException
✔️ Vyvolejte výjimku InvalidOperationException , pokud je objekt v nevhodném stavu.
ArgumentException, ArgumentNullException a ArgumentOutOfRangeException
✔️ Vyvolání ArgumentException nebo jednoho z jeho podtypů, pokud jsou členům předány chybné argumenty. Pokud je to možné, upřednostněte nejvýraznější typ výjimky.
Nastavte vlastnost ParamName při vyvolání jedné z podtříd ArgumentException.
Tato vlastnost představuje název parametru, který způsobil výjimku vyvolání. Všimněte si, že vlastnost lze nastavit pomocí jednoho z přetížení konstruktoru.
✔️ POUŽIJTE value jako název implicitního parametru hodnoty u setteru vlastnosti.
NullReferenceException, IndexOutOfRangeException, a AccessViolationException
❌ NEPOVOLOVAT veřejně volatelná rozhraní API explicitně nebo implicitně vyvolat NullReferenceException, AccessViolationExceptionnebo IndexOutOfRangeException. Tyto výjimky jsou rezervované a vyvolány prováděcím modulem a ve většině případů značí chybu.
Proveďte kontrolu argumentů, abyste se vyhnuli vyvolání těchto výjimek. Vyvolání těchto výjimek zveřejňuje podrobnosti implementace vaší metody, které se můžou v průběhu času měnit.
StackOverflowException
❌ NEHÁZEJTE VÝJIMKY EXPLICITNĚ StackOverflowException. Výjimka by měla být explicitně vyhozena pouze CLR.
❌ NEchytejte StackOverflowException.
Je téměř nemožné napsat spravovaný kód, který zůstává konzistentní při libovolných přetečeních zásobníku. Neřízené části CLR zůstávají konzistentní díky využití sond k přesunu přetečení zásobníku na dobře definovaná místa, namísto stahování z libovolných přetečení zásobníku.
OutOfMemoryException
❌ NEHÁZEJTE VÝJIMKY EXPLICITNĚ OutOfMemoryException. Tato výjimka je vyvolána pouze infrastrukturou CLR.
ComException, SEHException a ExecutionEngineException
❌ NEVYHAZUJTE explicitně COMException, ExecutionEngineException a SEHException. Tyto výjimky mají být vyvolávány pouze infrastrukturou CLR.
Části z © 2005, 2009 Microsoft Corporation. Všechna práva vyhrazena.
Přetištěno se svolením Pearson Education, Inc. z Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition od Krzysztofa Cwaliny a Brada Abramse, vydáno 22. října 2008 nakladatelstvím Addison-Wesley Professional jako součást série Microsoft Windows Development.