Mekanisme Ralat Global JavaScript
Masalah: Adakah terdapat cara global untuk memerangkap setiap ralat JavaScript, termasuk panggilan fungsi tidak ditentukan yang dicetuskan oleh Flash?
Penyelesaian Menggunakan window.onerror
JavaScript menawarkan pengendali acara global, window.onerror, yang menangkap ralat yang dilemparkan sama ada semasa masa jalan (pengecualian tidak ditangkap) atau kompilasi (ralat masa kompilasi).
<code class="javascript">window.onerror = function(msg, url, line, col, error) {
// Process and display error information
}</code>
Salin selepas log masuk
Menetapkan pengendali peristiwa window.onerror seperti yang ditunjukkan di atas akan memintas dan memproses setiap ralat yang ditemui dalam kod JavaScript.
Jenis Ralat Dikendalikan oleh window.onerror
tetingkap. onerror mengendalikan kedua-dua pengecualian yang tidak ditangkap dan ralat masa kompilasi. Pengecualian yang tidak ditangkap termasuk ralat seperti:
- lempar "beberapa mesej"
- Memanggil fungsi yang tidak ditentukan seperti call_something_undefined()
Ralat masa kompilasi, sebaliknya tangan, sertakan ralat seperti:
- Teg skrip tidak ditamatkan ({)
- Ralat sintaks (untuk(;)< /script>)
Keserasian Pelayar
window.onerror disokong secara meluas dalam penyemak imbas moden, termasuk:
- Chrome 13
- Firefox 6.0
- Internet Explorer 5.5
- Opera 11.60
- Safari 5.1
Penggunaan Terperinci
Dengan mengembalikan true dari window.onerror, anda boleh menyekat makluman penyemak imbas lalai yang biasanya muncul untuk ralat JavaScript.
Pelaporan Ralat AJAX: Menggunakan XMLHttpRequest, anda boleh hantar maklumat ralat terperinci melalui AJAX ke skrip sebelah pelayan untuk pengelogan atau pemprosesan selanjutnya.
Rujukan
Rangkaian Pembangun Mozilla: window.onerror ([link](https:// developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror))- MSDN: Mengendalikan dan Mengelak Ralat Halaman Web Bahagian 2: Ralat Masa Jalan ([pautan](https:/ /docs.microsoft.com/en-us/previous-versions/aspnet/bb264952(v=vs.100)))
- Kembali ke Asas – Peristiwa onerror JavaScript ([pautan](https://javascriptweblog .wordpress.com/2010/02/11/back-to-basics-javascript-onerror-event/))
- DEV.OPERA: Pengendalian ralat yang lebih baik dengan window.onerror ([pautan](https:/ /dev.opera.com/articles/window-onerror/))
- Peristiwa Window onError ([pautan](https://www.byterocket.org/blog/window-onerror-event))
- Menggunakan acara onerror untuk menyekat ralat JavaScript ([pautan](https://remysharp.com/2010/10/08/using-the-onerror-event-to-suppress-javascript-errors/))
- Limpahan Tindanan: window.onerror tidak menyala dalam Firefox ([pautan](https://stackoverflow.com/questions/10714399/window-onerror-not-firing-in-firefox))
-
Atas ialah kandungan terperinci Bagaimanakah saya boleh menangkap semua ralat JavaScript secara global, termasuk panggilan fungsi tidak ditentukan yang dicetuskan oleh Flash, menggunakan mekanisme `window.onerror`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!