⊗jsSpExcDAE 148 of 294 menu

Contoh Pengecualian dengan Atribut data- dalam JavaScript

Misalkan saat halaman dimuat, server membuat kode HTML yang menyimpan nama, harga dan jumlah produk yang dibeli:

<div id="product" data-product="apel" data-price="1000" data-amount="5"></div>

Mari kita buat fungsi yang akan menerima referensi ke elemen produk dan menemukan biaya total barang (harga dikalikan dengan kuantitas):

function getCost(elem) { return elem.dataset.price * elem.dataset.amount; }

Mari temukan biaya produk kami:

let product = document.querySelector('#product'); let cost = getCost(product); alert(cost);

Sekarang anggap situasi berikut: karena gangguan tertentu di server, server mengirimkan produk yang tidak memiliki harga atau kuantitas (atau keduanya sekaligus), misalnya, seperti ini:

<div id="product" data-product="apel" data-price="1000"></div>

Jika sekarang mencoba menghitung biaya produk, hasilnya yang akan ditampilkan di layar adalah NaN. Setuju, tidak terlalu informatif.

Ternyata, kita perlu melindungi diri dari ketidakhadiran atribut yang kita butuhkan. Ini dapat dilakukan dengan dua cara. Cara pertama adalah dengan mengatakan bahwa ini adalah perilaku normal dan hanya memeriksa keberadaan atribut yang kita butuhkan dengan if:

function getCost(elem) { if (elem.dataset.price !== undefined && elem.dataset.amount !== undefined) { return elem.dataset.price * elem.dataset.amount; } else { return 0; // mengembalikan sesuatu, misalnya, 0 atau null atau false } }

Opsi kedua adalah dengan mengatakan bahwa tidak adanya atribut data-price atau data-amount adalah situasi yang luar biasa. Dalam hal ini kita akan melemparkan pengecualian:

function getCost(elem) { if (elem.dataset.price !== undefined && elem.dataset.amount !== undefined) { return elem.dataset.price * elem.dataset.amount; } else { throw { name: 'ProductCostError', message: 'harga atau kuantitas produk tidak ada' }; } }

Manakah dari dua opsi yang lebih tepat untuk diterapkan di sini - ini adalah pilihan programmer. Dia dapat menganggap masalah tersebut sebagai pekerjaan normal skrip atau situasi yang luar biasa.

Misalkan kita memutuskan bahwa situasinya luar biasa. Maka kode untuk mendapatkan biaya produk akan terlihat seperti ini:

let product = document.querySelector('#product'); try { let cost = getCost(product); alert(cost); } catch (error) { // bereaksi terhadap pengecualian dengan cara tertentu }

Ubah kode saya sehingga fungsi getCost melemparkan dua jenis pengecualian: jika harga tidak ada dan jika kuantitas tidak ada. Pikirkan baik-baik tentang nama pengecualian ini. Di blok catch, tampilkan pesan kesalahan yang berbeda untuk pengecualian dengan jenis yang berbeda.

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