La gestion robuste des exceptions est primordiale lorsque vous travaillez avec des objets COM dans les applications .NET. Cependant, le AccessViolationException
présente des défis uniques, en particulier lorsque le débogueur Visual Studio contourne le bloc catch
.
dans .net 4.0, AccessViolationException
relève de la catégorie des exceptions d'état corrompues (CSE). Ces exceptions signalent un état de processus compromis, généralement inaccessible par le code géré standard.
Plusieurs méthodes existent pour résoudre ce problème:
Target .NET 3.5: Recompile votre application pour .NET 3.5 et exécutez-la dans l'environnement .NET 4.0.
App.config Modification: Ajoutez l'entrée suivante au fichier de configuration de votre application (app.config
):
<code class="language-xml"> <legacyCorruptedStateExceptionsPolicy enabled="true" /></code>
HandleProcessCorruptedStateExceptions
Attribut: Utilisez l'attribut HandleProcessCorruptedStateExceptions
Attribut aux méthodes Mark destinées à gérer les CSE. Pour des conseils détaillés, reportez-vous à: https://www.php.cn/link/76c0df0665c83c5944ae67cae2739f7e (Remarque: Ce lien peut être obsolète. Recherche pour "HandleProcessCorruptedStateExceptions" sur le site de documentation Microsoft actuel pour le site de documentation TOUTY. )
Comme l'a noté Gaurav Khanna de l'équipe Microsoft CLR, l'incapacité d'attraper certaines exceptions dans .NET 4.0 est intentionnelle. Ces exceptions indiquent un état de processus gravement compromis. Le choix de la technique de gestion appropriée dépend des besoins de votre application et de la tolérance au risque. Considérez soigneusement les implications avant de tenter d'attraper les CSE.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!