pernyataan toleran kesalahan js, bahkan jika kesalahan js terjadi, tidak ada kesalahan yang akan diminta (untuk mencegah simbol segitiga kuning di sudut kanan bawah browser, jika tidak, pengalaman pengguna akan buruk)
Copy kode kodenya sebagai berikut:
window.onerror=function(){kembali benar;}
Berikut ini untuk mendapatkan informasi pengecualian js untuk memudahkan pengembang menemukan masalah
1, coba...tangkap...
Copy kode kodenya sebagai berikut:
<skrip tipe="teks/javascript">
var txt=""
pesan fungsi()
{
mencoba
{
addlert("Selamat datang tamu!")
}
menangkap (salah)
{
txt="Ada kesalahan pada halaman ini./n/n"
txt+="Klik "OK" untuk melanjutkan melihat halaman ini,/n"
txt+="Klik "Batal" untuk kembali ke beranda./n/n"
jika(!konfirmasi(txt))
{
dokumen.lokasi.href="/index.html"
}
}
}
</skrip>
2, lempar
Copy kode kodenya sebagai berikut:
<skrip tipe="teks/javascript">
var x=prompt("Masukkan angka antara 0 dan 10:","")
mencoba
{
jika(x>10)
lempar "Err1"
lain jika(x<0)
lempar "Err2"
lain jika(isNaN(x))
lempar "Err3"
}
penangkap)
{
jika(er=="Err1")
alert("Error! Nilainya terlalu besar!")
jika(er == "Err2")
alert("Error! Nilainya terlalu kecil!")
jika(er == "Err3")
alert("Error! Nilainya bukan angka!")
}
</skrip>
3, kesalahan:
Copy kode kodenya sebagai berikut:
<skrip tipe="teks/javascript">
onerror=handleErr
var txt=""
fungsi handleErr(pesan,url,l)
{
txt="Ada kesalahan pada halaman ini./n/n"
txt+="Kesalahan:" + pesan + "/n"
txt+="URL: " + url + "/n"
txt+="Baris:" + l + "/n/n"
txt+="Klik "OK" untuk melanjutkan./n/n"
peringatan(txt)
kembali benar
}
pesan fungsi()
{
addlert("Selamat datang tamu!")
}
</skrip>
Penanganan pengecualian di js
Anda dapat menggunakan try...catch dalam JavaScript untuk penanganan pengecualian. Misalnya:
coba { foo.bar();} catch (e) { alert(e.name + ": " + e.message);}
Saat ini, pengecualian sistem yang mungkin kami dapatkan sebagian besar mencakup 6 jenis berikut:
EvalError: dimunculkan ketika terjadi kesalahan saat mengeksekusi kode di eval()
RangeError: dimunculkan ketika variabel atau parameter numerik berada di luar rentang validnya
ReferrenceError: muncul ketika membatalkan referensi referensi yang tidak valid
SyntaxError: muncul ketika terjadi kesalahan sintaksis saat mengurai kode di eval()
TypeError: dimunculkan ketika variabel atau parameter bukan tipe yang valid
URIError: muncul ketika encodeURI() atau decodeURI() melewati parameter yang tidak valid
Enam objek pengecualian di atas semuanya mewarisi dari objek Error. Semuanya mendukung dua metode konstruksi berikut:
Kesalahan baru();Kesalahan baru("Informasi pengecualian");
Cara melempar pengecualian secara manual adalah sebagai berikut:
Copy kode kodenya sebagai berikut:
mencoba {
melempar Kesalahan baru("Ups!");}
menangkap (e) {
alert(e.nama + ": " + e.pesan);}
Jika Anda ingin menentukan jenis informasi pengecualian, Anda dapat melakukannya di catch:
Copy kode kodenya sebagai berikut:
mencoba {
foo.bar();
} tangkapan (e) {
jika (e instanceof EvalError) {
alert(e.nama + ":" + e.pesan);
} else if (misalnya RangeError) {
alert(e.nama + ": " + e.pesan }
//dll
}
Kesalahan memiliki properti utama berikut:
deskripsi: Deskripsi kesalahan (hanya tersedia di IE).
fileName: Nama file kesalahan (hanya tersedia di Mozilla).
lineNumber: Jumlah baris yang error (hanya tersedia di Mozilla).
pesan: pesan kesalahan (sama seperti deskripsi di bawah IE)
nama: tipe kesalahan.
nomor: kode kesalahan (hanya tersedia di IE).
tumpukan: Informasi tumpukan kesalahan seperti Stack Trace di Java (hanya tersedia di Mozilla).
Oleh karena itu, agar lebih memahami pesan error tersebut, kita dapat mengubah bagian catch menjadi bentuk berikut:
Copy kode kodenya sebagai berikut:
mencoba {
foo.bar();
} tangkapan(e) {
jika (Jenis browser != BROWSER_IE) {
alert("nama: " + e.name + "pesan: " + e.message + "lineNumber: " + e.lineNumber + "fileName: " + e.fileName + "stack: " + e.stack);
} kalau tidak {
alert("nama: " + e.name + "errorNumber: " + (e.number & 0xFFFF) + "pesan: " + e.message "); } } "
Perintah throw di JavaScript sebenarnya bisa melempar objek apa pun, dan kita bisa menerima objek ini di catch. Misalnya:
Copy kode kodenya sebagai berikut:
mencoba {
throw new Date(); // Melempar objek waktu saat ini} catch (e) { alert(e.toLocaleString()); // Gunakan format lokal untuk menampilkan waktu saat ini
}