Sama seperti bahasa Java, JavaScript boleh membuang pengecualian melalui pernyataan lontaran. Tidak seperti bahasa Java, JavaScript boleh membuang semua jenis nilai melalui pernyataan lontaran, bukan hanya objek ralat.
cuba{
buang "Mesej Mentah";
}tangkap(mesej){
console.log(message);//Mesej Mentah
console.log(typeof message);//rentetan
}
cuba{
baling 42;
}tangkap(kod){
console.log(kod);//42
console.log(jenis kod);//nombor
}
Seperti bahasa Java, jika pengecualian tidak ditangkap oleh mana-mana pernyataan tangkapan, pengecualian akhirnya akan dilemparkan kepada pengguna:
cuba{
balingan 42;//Ralat akan dilemparkan Ralat: 42
}akhirnya{
}
Untuk menangkap pengecualian yang dilemparkan, JavaScript juga menggunakan pernyataan cuba/tangkap/akhirnya Peraturan penggunaannya ialah: cuba diperlukan, tangkap dan akhirnya adalah pernyataan pilihan, tetapi sekurang-kurangnya satu tangkapan dan akhirnya mesti muncul.
Dalam pernyataan tangkapan, anda boleh menentukan parameter e (atau mana-mana nama pembolehubah undang-undang lain) untuk menyimpan nilai pengecualian yang dilemparkan. Di dalam pernyataan tangkapan, parameter ini boleh digunakan sebagai pembolehubah setempat. Tidak seperti penggunaan pembolehubah lain dalam JavaScript, pembolehubah parameter dalam pernyataan tangkapan hanya sah dalam pernyataan tangkapan (skop pembolehubah terhad kepada pernyataan tangkapan).
Untuk pernyataan akhirnya, kod dalam akhirnya akan dilaksanakan tanpa mengira sama ada pengecualian dilemparkan dalam percubaan. Butiran termasuk:
1. Tiada pengecualian berlaku dalam percubaan Apabila pernyataan cuba dilaksanakan, kod dalam akhirnya akan dilaksanakan.
2. Tiada pengecualian berlaku dalam percubaan, tetapi apabila kod try keluar disebabkan oleh pelaksanaan penyataan break, continue atau return, kod dalam akhirnya akan dilaksanakan.
3. Pengecualian berlaku dalam percubaan Selepas pengecualian dikendalikan oleh pernyataan tangkapan, kod dalam akhirnya dilaksanakan.
4. Apabila pengecualian berlaku dalam percubaan, tetapi pengecualian perlu dilemparkan ke atas kerana tiada pernyataan tangkapan, kod dalam akhirnya akan dilaksanakan. Perlu diingat bahawa jika tiada kenyataan tangkapan, JavaScript mula-mula akan melaksanakan kod dalam akhirnya dan kemudian terus membuang pengecualian.
Dalam kod akhirnya, jika penyataan break, continue atau return muncul, JavaScript akan melaksanakan secara langsung penyataan ini, tanpa mengira penyataan break, continue atau return yang mungkin wujud dalam kod try walaupun ketiadaan penyataan tangkapan menyebabkan pengecualian, Apabila dilaporkan, JS juga akan membuang maklumat pelaporan pengecualian dan terus melaksanakan pemecahan, meneruskan atau mengembalikan kenyataan dalam kod akhirnya. Begitu juga, jika pengecualian turut dilemparkan dalam kod akhirnya, JavaScript akan membuang semua penyataan putus, teruskan atau kembalikan dalam kod cuba, dan juga membuang kemungkinan tingkah laku pelaporan pengecualian, dan hanya membuang pengecualian dalam kod akhirnya.