Kivételek felügyelt szálakban
A közös nyelvi futtatókörnyezet lehetővé teszi, hogy a szálak legtöbb kezeletlen kivétele természetes módon haladjon tovább. A legtöbb esetben ez azt jelenti, hogy a kezeletlen kivétel miatt az alkalmazás leáll. A közös nyelvi futtatókörnyezet azonban biztosít egy háttérrendszert bizonyos kezeletlen kivételekhez, amelyek a programfolyamat szabályozásához használatosak:
A ThreadAbortException egy szálba kerül, mert Abort meghívták. Ez csak .NET-keretrendszer alkalmazásokra vonatkozik.
A AppDomainUnloadedException program azért dob egy szálat, mert a szálat végrehajtó alkalmazástartomány kiürítve van.
A közös nyelvi futtatókörnyezet vagy a gazdagépfolyamat belső kivétellel leállítja a szálat.
Ha ezen kivételek bármelyike nincs kezelve a közös nyelvi futtatókörnyezet által létrehozott szálakban, a kivétel leállítja a szálat, de a közös nyelvi futtatókörnyezet nem teszi lehetővé a kivétel továbbhaladását.
Ha ezek a kivételek nincsenek kezelve a főszálban, vagy azokban a szálakban, amelyek nem felügyelt kódból adták be a futtatókörnyezetet, azok a szokásos módon haladnak, ami az alkalmazás leállítását eredményezi.
Feljegyzés
Lehetséges, hogy a futtatókörnyezet nem kezelt kivételt ad, mielőtt bármely felügyelt kódnak lehetősége lett volna egy kivételkezelő telepítésére. Annak ellenére, hogy a felügyelt kódnak nem volt lehetősége ilyen kivétel kezelésére, a kivétel természetesen folytatódhat.
Szálkezeléssel kapcsolatos problémák felfedése a fejlesztés során
Ha a szálak csendesen meghiúsulhatnak, az alkalmazás leállása nélkül súlyos programozási problémák léphetnek fel. Ez egy adott probléma a hosszabb ideig futó szolgáltatások és egyéb alkalmazások esetében. A szálak sikertelen működése miatt a program állapota fokozatosan megsérül. Az alkalmazás teljesítménye csökkenhet, vagy előfordulhat, hogy az alkalmazás nem válaszol.
Lehetővé teszi, hogy a szálak kezeletlen kivételei természetes módon haladjanak tovább, amíg az operációs rendszer leállítja a programot, elérhetővé teszi ezeket a problémákat a fejlesztés és a tesztelés során. A programmegszüntetésekkel kapcsolatos hibajelentések támogatják a hibakeresést.
Gazdagép felülbírálása
A nem felügyelt gazdagépek a Hosting API ICLRPolicyManager felületével felülbírálhatják a közös nyelvi futtatókörnyezet alapértelmezett nem kezelt kivételszabályzatát. Az ICLRPolicyManager::SetUnhandledExceptionPolicy függvény a nem kezelt kivételek házirendjének beállítására szolgál.
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: