Contoh dalam artikel ini meringkaskan kaedah pengendalian pengecualian dalam pengaturcaraan JavaScript. Kongsikan dengan semua orang untuk rujukan anda, butirannya adalah seperti berikut:
Kata Pengantar: Dalam artikel sebelumnya "Ringkasan kaedah penangkapan pengecualian awam biasa dalam pembangunan asp.net", kami meringkaskan pengendalian pengecualian pada pelayan asp.net. Artikel ini mengikuti artikel sebelumnya dan meringkaskan dan membincangkan secara ringkas pengendalian pengecualian JavaScript pada bahagian klien. Dengan cara ini, kami mempunyai pemahaman awal tentang pengendalian pengecualian bahagian pelayan dan pelanggan asp.net.
1. Ralat skrip yang menjengkelkan
Lou Zhu sering bermain 13, tetapi secara amnya tiada kedalaman. Kadang-kadang, saya bergelut untuk memahami petikan dalam bahasa Inggeris, dan akhirnya saya boleh berpura-pura sekali lagi secara mendalam:
Apabila menyemak imbas halaman Web di internet, kita semua telah melihat kotak makluman JavaScript yang memberitahu kami terdapat ralat masa jalan dan bertanya "Adakah anda ingin menyahpepijat?" Mesej ralat seperti ini mungkin berguna untuk pembangun tetapi tidak untuk pengguna . Apabila pengguna melihat ralat, mereka sering meninggalkan halaman Web.
Hei, tidakkah anda faham perenggan di atas? Secara elegan dan kasar, nclouzhu memahami bahawa semasa membuka halaman web, kita semua menghadapi masalah SB seperti ralat skrip muncul pada halaman web dan bertanya "Adakah anda mahu nyahpepijat dari semasa ke semasa? Bukankah ia menjengkelkan? Pengguna biasa lazimnya memilih salib merah di penjuru kanan sebelah atas, tetapi maklumat segera jenis ini mungkin sangat berguna kepada pembangun. Ia boleh dilihat bahawa, saya kao, pemaju tidak normal? ! Nampaknya Lou Zhu salah faham. Sebenarnya, tidak sukar untuk melihat bahawa niat utama teks asal adalah untuk memberitahu kami bahawa ralat skrip dalam halaman web adalah sangat serius dan pengalaman pengguna tidak baik, yang akan "menakutkan" sekumpulan pengguna berpotensi sia-sia.
2. Cara menangani ralat skrip
Dalam js, kami biasanya menangkap dan mengendalikan pengecualian melalui percubaan...tangkap.
try { //Run some code here } catch(e) { //Handle errors here }
Dalam kod sebenar, kami mungkin menulis:
function test(){ var txt=""; try{ alert(aaa);//aaa是未声明的变量 } catch(e){ txt="There was an error on this page.\n\n"; txt+="Error message: " + e.message + "\n\n"; txt+="Error description: " + e.description + "\n\n"; txt+="Error name: " + e.name + "\n\n"; //alert(txt);//正式平台上可能需要注释掉该行 } }
Satu lagi pendekatan biasa ialah mendaftarkan kaedah pemprosesan umum untuk peristiwa kesalahan objek tetingkap dan meletakkan kod berikut dalam bahagian
window.onerror=function(){ return true; }
3. Ralat dalam javascript
(1), Atribut biasa objek Ralat
Apabila kami menangkap pengecualian, kami biasanya membuang contoh e objek Ralat pada tangkapan Beberapa sifat umum e adalah seperti berikut:
Perihalan Atribut
penerangan Maklumat penerangan pengecualian
mesej Maklumat perihalan abnormal
nama Jenis pengecualian
nombor Kod pengecualian unik
(2), Jenis objek Ralat
Kami boleh menyemak jenis pengecualian melalui atribut nama dalam (1). Dalam js, terdapat beberapa jenis pengecualian biasa seperti berikut:
TypeError : Dibangkitkan apabila jenis yang tidak dijangka ditemui, seperti pembolehubah tidak diisytiharkan
SyntaxError : Dicetuskan oleh ralat sintaks semasa menghuraikan kod js, seperti skrip pendaftaran bahagian pelayan, kurungan hilang atau tanda petikan, dsb.;
ReferenceError: Pengecualian ini dibangkitkan apabila rujukan tidak sah digunakan;
EvalError : Dibangkitkan apabila fungsi eval dipanggil dengan salah;
RangeError : Dibangkitkan apabila nilai pembolehubah berangka melebihi julatnya;
URIError : Dibangkitkan apabila fungsi encodeURI() atau decodeURI() digunakan secara tidak betul.
Dalam pembangunan sebenar, pengendalian pengecualian yang berbeza untuk jenis pengecualian yang berbeza akan membantu kami menemui masalah dengan berkesan dan meningkatkan pengalaman pengguna.
Saya harap artikel ini akan membantu semua orang dalam pengaturcaraan JavaScript.