Maison >développement back-end >C++ >Comment puis-je enregistrer de manière cohérente les messages d'exception en anglais dans une application .NET ?
Garantir une journalisation cohérente des exceptions en anglais dans les applications .NET
Le traitement des messages d'exception enregistrés dans différentes langues client (par exemple, le turc) peut compliquer le débogage. Cet article explique comment enregistrer systématiquement ces messages en anglais dans votre application .NET.
Le mécanisme de gestion des exceptions du .NET Framework récupère les messages d'erreur des fichiers de ressources en fonction des paramètres de culture du thread actuel. Certaines exceptions chargent ces messages lors de l'accès à la propriété Message
.
Une approche courante pour obtenir le message en anglais consiste à changer temporairement la culture du fil de discussion sur « en-US » pendant la journalisation :
<code class="language-csharp">using System; using System.Globalization; using System.IO; try { StreamReader sr = new StreamReader(@"c:\does-not-exist"); } catch (Exception ex) { Console.WriteLine(ex.ToString()); // Localized message ExceptionLogger el = new ExceptionLogger(ex); Thread t = new Thread(el.DoLog); t.CurrentUICulture = new CultureInfo("en-US"); t.Start(); }</code>
La classe ExceptionLogger
gère la journalisation en anglais :
<code class="language-csharp">class ExceptionLogger { Exception _ex; public ExceptionLogger(Exception ex) { _ex = ex; } public void DoLog() { Console.WriteLine(_ex.ToString()); // English message } }</code>
Il est important de noter que pour certaines exceptions, les composants du message peuvent être chargés à partir des ressources linguistiques à l'origine de l'exception. Cela peut conduire à des messages partiellement localisés même avec cette technique.
Pour un contrôle complet, envisagez d'exécuter tout le code non-UI dans un thread configuré avec la culture "en-US" dès le démarrage de l'application. Cependant, le .NET Framework ne prend pas directement en charge le remplacement des paramètres régionaux du message d'exception.
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!