Pengendalian Ralat JavaScript yang Berkesan dengan Mekanisme Acara Global
Untuk mengendalikan ralat fungsi yang tidak ditentukan secara global, memanfaatkan mekanisme acara global JavaScript secara berkesan menangkap semua yang tidak ditangkap pengecualian.
window.onerror Pengendalian Acara
Laksanakan pengendali acara untuk acara window.onerror seperti berikut:
<code class="javascript">window.onerror = function(msg, url, line, col, error) {
// Message, URL, line and column details
// Note that col & error are new to HTML 5 and may vary across browsers.
// Customize the error display or perform error reporting using AJAX, for instance:
var xhr = new XMLHttpRequest();
xhr.open('POST', '/ajax/log_javascript_error');
xhr.send(JSON.stringify({ msg, url, line, col, error }));
};</code>
Salin selepas log masuk
< ;h2>Bilakah window.onerror Mencetuskan?
Acara ini berlaku apabila:
-
Pengecualian Tidak Ditangkap: Melempar mesej, memanggil fungsi yang tidak ditentukan , atau merentasi ralat tetingkap/dokumen kandungan iframe asal.
-
Ralat Kompilasi: Ralat sintaks, seperti kurungan tidak sepadan, koma bertitik hilang atau cuba menyusun argumen bukan skrip.
Sokongan Penyemak Imbas
- Chrome 13
- Firefox 6.0
- Internet Explorer 5.5
Opera Safari 5.1 -
Sumber Tambahan
Rangkaian Pembangun Mozilla: [window.onerror](https:/ /developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror)- MSDN: [Mengendalikan dan Mengelakkan Ralat Halaman Web Bahagian 2: Ralat Masa Jalan](https://docs .microsoft.com/en-us/previous-versions/ms536764(v=vs.85))
- [Kembali ke Asas – Peristiwa onerror JavaScript](https://www.webdesignerdepot.com/2014/ 10/back-to-basics-javascript-onerror-event/)
- [DEV.OPERA: Pengendalian ralat yang lebih baik dengan window.onerror](https://dev.opera.com/articles/better-error -handling-with-window-onerror/)
- [Window onError Event](https://www.html5rocks.com/en/tutorials/developertools/onerror/)
- [Menggunakan acara onerror untuk menyekat ralat JavaScript](https://stackoverflow.com/a/11712511)
- [SO: window.onerror tidak menyala dalam Firefox](https://stackoverflow.com/q/5472601/ 123152)
-
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengendalikan ralat JavaScript secara berkesan secara global menggunakan acara `window.onerror`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!