⊗jsSpExcThr 145 of 294 menu

Melontarkan Pengecualian dalam JavaScript

Dalam pelajaran sebelumnya, kita telah mempelajari dua tempat di mana JavaScript melontarkan pengecualian sekiranya terdapat masalah.

Walau bagaimanapun, dalam projek anda, mungkin terdapat situasi lain yang dianggap sebagai pengecualian bagi anda, tetapi tidak bagi JavaScript. Dalam kes ini, kita boleh mencipta dan melontarkan pengecualian kami sendiri (pengecualian pengguna).

Mari kita teliti sintaks yang diperlukan untuk ini. Pertama, pengecualian perlu dicipta menggunakan perintah new Error, dengan menghantar teks pengecualian sebagai parameter:

new Error('teks pengecualian');

Kemudian, pengecualian ini perlu dilontarkan menggunakan perintah throw:

throw new Error('teks pengecualian');

Melontar pengecualian memaksa JavaScript menganggap bahawa situasi yang luar biasa telah berlaku. Ini bermakna pengecualian sedemikian boleh ditangkap menggunakan konstruksi try-catch dan diproses dengan cara yang dikehendaki.

Mari kita lihat contoh bagaimana menggunakannya. Katakan kita mempunyai fungsi yang membahagi satu nombor dengan nombor yang lain:

function div(a, b) { return a / b; }

Mari kita anggap bahawa pembahagian dengan sifar adalah dilarang dan sebarang percubaan untuk melakukannya harus menyebabkan situasi pengecualian. Untuk ini, kita akan menyemak dalam fungsi sama ada terdapat percubaan untuk membahagi dengan 0. Jika tidak - kita akan membahagi, dan jika ya - kita akan melontar pengecualian:

function div(a, b) { if (b !== 0) { return a / b; } else { throw new Error('ralat pembahagian dengan sifar'); } }

Mari kita mula-mula cuba membahagi dengan 0, tanpa menangkap pengecualian:

alert( div(3, 0) );

Dalam kes ini, pelaksanaan skrip akan terganggu dan ralat dengan teks 'ralat pembahagian dengan sifar' akan muncul dalam konsol (sila semak). Sekarang mari kita tangkap ralat kami dan prosesnya dengan cara tertentu:

try { alert( div(3, 0) ); } catch (error) { alert('anda cuba membahagi dengan 0, yang dilarang'); }

Dalam JavaScript, percubaan untuk mengeluarkan punca kuasa dua daripada nombor negatif tidak menyebabkan pengecualian dilontarkan:

let result = Math.sqrt(-1); console.log(result); // akan memaparkan NaN

Tulis fungsi anda sendiri yang akan mengeluarkan punca kuasa dua daripada nombor dan pada masa yang sama melontar pengecualian sekiranya punca kuasa dua dikeluarkan daripada nombor negatif.

kaptuzcbnhu