Amalan Pengendalian Pengecualian Terbaik
Ulasan kod sering mendedahkan bahawa pengendalian pengecualian dilaksanakan dengan cara yang tidak cekap, menimbulkan kebimbangan sama ada amalan ini konsisten dengan amalan terbaik industri.
Huraian Masalah
Sesetengah coretan kod menunjukkan pengendalian pengecualian yang boleh dipersoalkan:
<code>try { //执行某些操作 } catch { //什么也不做 }</code>
Atau rekod maklumat dalam blok cuba-tangkap, contohnya:
<code>try { //执行某些工作 } catch(Exception exception) { WriteException2LogFile(exception); }</code>
Garis Panduan Amalan Terbaik
Strategi pengendalian pengecualian yang direka dengan baik harus mengikut garis panduan berikut:
Application.ThreadException
untuk menangkap semua pengecualian yang tidak dikendalikan. Contoh Kod
Amalan Buruk:
<code>// 不要这样做,这是错误的。 try { ... } catch { // 空的catch块。 }</code>
Amalan tidak sah:
<code>// 也不要这样做。 try { ... } catch(Exception ex) { throw ex; }</code>
Penggunaan yang sah:
<code>try { listView1.BeginUpdate(); // 异常处理代码... } finally { // 保证执行。 listView1.EndUpdate(); }</code>
Pemprosesan lanjutan:
<code>try { ... } catch(Exception ex) { ex.Log(); // 记录异常。 // 或者: ex.Log().Display(); // 记录异常并显示给用户。 }</code>
Pemprosesan tahap fungsi:
<code>// 计算模块 try { ... } catch(Exception ex) { throw new ApplicationException("计算模块错误。", ex); } // IO模块 try { ... } catch(Exception ex) { throw new ApplicationException("文件写入错误。", ex); }</code>
Kaedah sambungan:
<code>// 用法: try { // 错误处理... } catch(Exception ex) { // 只记录日志。 ex.Log(); // 只显示。 ex.Display(); // 先记录日志,再显示。 ex.Log().Display(); // 添加自定义用户消息。 new ApplicationException("无法计算。", ex).Log().Display(); } // 扩展方法: internal static Exception Log(this Exception ex) { // 记录异常。 return ex; } internal static Exception Display(this Exception ex, string msg = null, MessageBoxImage img = MessageBoxImage.Error) { // 显示异常。 return ex; }</code>
Mengikuti amalan terbaik ini memastikan pengecualian dikendalikan dengan berkesan, memberikan pengguna dan pembangun maklumat yang diperlukan sambil mengekalkan kestabilan dan kebolehpercayaan aplikasi.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Amalan Terbaik Pengendalian Pengecualian yang Berkesan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!