Mengendalikan Pengecualian dengan Anggun dalam .NET: Memelihara Butiran Penting
Apabila berurusan dengan pengecualian dan membuangnya semula dalam aplikasi .NET, adalah penting untuk mengekalkan konteks pengecualian asal, termasuk InnerException
dan surih tindanan. Dua kaedah biasa untuk membaling semula ialah:
<code class="language-csharp">try { // Code that might throw an exception } catch (Exception ex) { throw ex; // Method 1 }</code>
<code class="language-csharp">try { // Code that might throw an exception } catch { throw; // Method 2 }</code>
Kepentingan Pemeliharaan Surih Tindanan:
Mengekalkan surih tindanan asal adalah penting untuk penyahpepijatan. Menggunakan throw;
(Kaedah 2) adalah cara pilihan untuk mencapai matlamat ini; ia membuang semula pengecualian tanpa mengubah surih tindanannya. Sebaliknya, throw ex;
(Kaedah 1) mencipta surih tindanan baharu bermula daripada pernyataan throw
, kehilangan maklumat berharga tentang asal pengecualian.
Memperkayakan Pengecualian dengan Maklumat Kontekstual:
Kadangkala, menambahkan konteks tambahan pada pengecualian yang dilemparkan semula adalah berfaedah. Ini boleh dicapai dengan mencipta contoh pengecualian baharu dan menyerahkan pengecualian asal sebagai InnerException
:
<code class="language-csharp">try { // Code that might throw an exception } catch (Exception ex) { throw new CustomException(ex, "Additional error details."); }</code>
Syor Utama:
throw;
untuk mengelakkan kehilangan konteks pengecualian asal.Atas ialah kandungan terperinci Bagaimanakah saya dapat mengekalkan butiran pengecualian apabila membuang semula dalam .net?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!