⊗jsSpExcPrb 150 of 294 menu

Melempar Pengecualian di JavaScript

Perhatikan blok catch dari tugas dengan produk JSON:

catch (error) { if (error.name == 'SyntaxError') { alert('JSON produk tidak valid'); } else if (error.name == 'ProductCostError') { alert('Produk tidak memiliki harga atau kuantitas'); } }

Seperti yang Anda lihat, kita menangkap dua pengecualian yang telah kita rencanakan dan memberikan respons tertentu. Tapi apa yang terjadi jika muncul pengecualian lain yang tidak kita antisipasi? Dalam kasus ini, pengecualian itu juga akan masuk ke blok catch, tetapi tidak akan ada respons apa pun, karena pengecualian dengan tipe lain tidak akan masuk ke dalam kondisi if mana pun yang kita miliki.

Ketika saya mengatakan tidak akan ada respons, yang saya maksud adalah benar-benar tidak ada: bahkan tidak akan ada pesan error yang muncul di konsol. Kode kita diam saja dan tidak akan bekerja.

Oleh karena itu, ada aturan berikut: kode Anda harus menangkap hanya pengecualian yang diketahui cara menanganinya. Jika pengecualian tidak dikenal, maka harus dilempar lebih jauh menggunakan throw. Dalam hal ini pengecualian akan ditangkap oleh sesuatu yang lebih mengetahui atau pengecualian akan muncul sebagai error di konsol.

Mari kita perbaiki kode kita:

catch (error) { if (error.name == 'SyntaxError') { alert('JSON produk tidak valid'); } else if (error.name == 'ProductCostError') { alert('Produk tidak memiliki harga atau kuantitas'); } else { throw error; // melempar pengecualian lebih jauh } }

Diberikan kode berikut:

try { let arr = JSON.parse(json); for (let i = 0; i < arr.length; i++) { localStorage.setItem(i, arr[i]); } } catch (error) { if (error.name == 'QuotaExceededError') { alert('ruang penyimpanan habis'); } if (error.name == 'SyntaxError') { alert('JSON tidak valid'); } }

Apa yang salah dengan kode ini? Perbaiki menjadi yang lebih baik.

Indonesia
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan cookie untuk operasi situs, analitik, dan personalisasi. Pemrosesan data dilakukan sesuai dengan Kebijakan Privasi.
terima semua atur tolak