Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Log Mesej Pengecualian Secara Konsisten dalam Bahasa Inggeris dalam Aplikasi .NET?
Memastikan Log Masuk Pengecualian Bahasa Inggeris yang Konsisten Aplikasi .NET
Menguruskan mesej pengecualian yang dilog dalam pelbagai bahasa pelanggan (cth., Turki) boleh merumitkan penyahpepijatan. Artikel ini memperincikan cara untuk log mesej ini secara konsisten dalam bahasa Inggeris dalam aplikasi .NET anda.
Mekanisme pengendalian pengecualian Rangka Kerja .NET mendapatkan semula mesej ralat daripada fail sumber berdasarkan tetapan budaya urutan semasa. Beberapa pengecualian memuatkan mesej ini apabila mengakses harta Message
.
Pendekatan biasa untuk mendapatkan mesej bahasa Inggeris melibatkan menukar budaya urutan sementara kepada "en-US" semasa pengelogan:
<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>
Kelas ExceptionLogger
mengendalikan pengelogan bahasa Inggeris:
<code class="language-csharp">class ExceptionLogger { Exception _ex; public ExceptionLogger(Exception ex) { _ex = ex; } public void DoLog() { Console.WriteLine(_ex.ToString()); // English message } }</code>
Adalah penting untuk ambil perhatian bahawa untuk pengecualian tertentu, komponen mesej mungkin dimuatkan daripada sumber bahasa di asal pengecualian. Ini boleh menyebabkan mesej disetempatkan separa walaupun dengan teknik ini.
Untuk kawalan sepenuhnya, pertimbangkan untuk menjalankan semua kod bukan UI dalam urutan yang dikonfigurasikan dengan budaya "en-US" dari permulaan aplikasi. Walau bagaimanapun, Rangka Kerja .NET tidak menyokong secara langsung mengatasi tempat mesej pengecualian.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Log Mesej Pengecualian Secara Konsisten dalam Bahasa Inggeris dalam Aplikasi .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!