Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Melaksanakan Pengendalian Pengecualian Global dalam Aplikasi WinForms?
Pengendalian pengecualian global dalam aplikasi WinForms: memintas ralat yang tidak dikendalikan
Pengendalian berkesan bagi pengecualian yang tidak dikendalikan dalam aplikasi WinForms adalah penting untuk mengelakkan ranap aplikasi yang tidak dijangka. Dengan melaksanakan pengendali pengecualian global, anda boleh log pengecualian ke pangkalan data dan memastikan bahawa fungsi kritikal tidak terganggu.
Soalan:
Dalam mod nyahpepijat, menggunakan blok cuba/tangkap dalam Program.cs di sekeliling Application.Run berjaya mengendalikan pengecualian. Walau bagaimanapun, apabila menjalankan aplikasi dalam mod bukan nyahpepijat, pengecualian tidak ditangkap dan pengguna melihat kotak dialog Pengecualian Tidak Terkendali.
Penyelesaian:
Untuk mendayakan pengendalian pengecualian global, ikuti langkah berikut:
Tambah pengendali pengecualian urutan UI:
<code class="language-csharp"> Application.ThreadException += new ThreadExceptionEventHandler(ErrorHandlerForm.Form1_UIThreadException);</code>
Tetapkan mod pengecualian tidak terkendali:
<code class="language-csharp"> Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);</code>
Tambah pengendali pengecualian urutan bukan UI:
<code class="language-csharp"> AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);</code>
Pengendalian pengecualian terpilih untuk penyahpepijatan:
Anda boleh memilih untuk menyekat pengendalian pengecualian semasa penyahpepijatan untuk memudahkan analisis ralat. Balut kod pengendalian pengecualian dengan bersyarat berikut:
<code class="language-csharp">if (!AppDomain.CurrentDomain.FriendlyName.EndsWith("vshost.exe")) { ... /* 异常处理代码 */ }</code>
Sebagai alternatif, anda boleh menyemak sama ada penyahpepijat dilampirkan:
<code class="language-csharp">if (!System.Diagnostics.Debugger.IsAttached) { ... /* 异常处理代码 */ }</code>
Ini memastikan bahawa pengecualian hanya dikendalikan apabila aplikasi berjalan dalam mod pengeluaran.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pengendalian Pengecualian Global dalam Aplikasi WinForms?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!