Bagaimana Anda menangani kesalahan dalam javascript?

Pembaca seperti Anda membantu mendukung MUO. Saat Anda melakukan pembelian menggunakan tautan di situs kami, kami dapat memperoleh komisi afiliasi. Baca selengkapnya

Kesalahan pemrograman tidak bisa dihindari. Cepat atau lambat, aplikasi Anda akan mengalami beberapa perilaku yang tidak terduga. Seperti bahasa pemrograman lainnya, JavaScript memunculkan kesalahan saat terjadi kesalahan dalam kode Anda

Kesalahan mengganggu aliran normal aplikasi. Tetapi mereka juga membantu melindungi aplikasi Anda dari perilaku yang tidak dapat diprediksi. Mengetahui cara menangani kesalahan dengan benar sangat penting

Mengapa Penanganan Kesalahan Penting?

Penanganan kesalahan berkontribusi pada pengalaman pengguna yang lebih baik. Anda dapat menukar default JavaScript dan terkadang kesalahan verbose dengan lebih banyak pesan kesalahan yang dapat dibaca manusia. Anda dapat dengan anggun menangani penyebab beberapa kesalahan dan menjaga agar program Anda tetap berjalan daripada menghentikannya

Penanganan kesalahan juga membantu selama pengembangan. Anda dapat menangkap kesalahan runtime dan melakukan sesuatu yang berguna dengannya, seperti memasukkannya ke konsol browser. Ini lebih anggun daripada kesalahan yang menyebabkan crash dan tidak tahu di mana atau mengapa kesalahan itu terjadi

Struktur Kesalahan Bawaan JavaScript

Kesalahan JavaScript adalah objek dengan tiga properti

  • nama. Ini adalah nama kesalahan. Misalnya, nama variabel yang hilang akan menimbulkan kesalahan yang disebut SyntaxError
  • pesan. Ini adalah isi pesan dan menjelaskan kesalahan secara tekstual
  • sebab. Anda dapat menggunakan properti ini dengan kesalahan khusus untuk melacak tumpukan panggilan

Jenis Kesalahan Umum dalam JavaScript

Berikut adalah beberapa kesalahan umum yang ditemukan di JavaScript

Kesalahan sintaks

Kesalahan sintaks dapat terjadi saat JavaScript mencoba menginterpretasikan kode Anda. Ini akan menimbulkan kesalahan jika kode Anda tidak sesuai dengan sintaks yang benar. Beberapa kesalahan umum yang dapat menimbulkan kesalahan sintaks adalah

  • Nama variabel tidak ada
  • Hilang “}” setelah fungsi
  • Hilang ")" setelah kondisi

ReferensiKesalahan

Kesalahan referensi terjadi ketika program mencoba mereferensikan variabel yang tidak tersedia atau di luar cakupan

TypeError

JavaScript dapat melontarkan kesalahan jenis ketika tidak dapat melakukan operasi karena jenis yang diharapkannya berbeda dari yang diterimanya

Kesalahan URI

Kesalahan ini terjadi jika Anda salah menggunakan fungsi penanganan URI global—seperti decodeURIComponent()—. Akibatnya, encoding atau decoding gagal

Kesalahan Agregat

Kesalahan ini digunakan untuk mewakili beberapa kesalahan yang dibungkus menjadi satu. Gunakan saat Anda ingin membuang banyak kesalahan sekaligus. Misalnya, Janji. any() dapat melempar AggregateError() ketika semua janji yang diteruskan ditolak

Kesalahan internal

InternalError dilemparkan ketika kesalahan terjadi di dalam mesin JavaScript

RangeError

Beberapa fungsi menentukan rentang nilai yang dapat Anda berikan sebagai argumen. Kesalahan ini terjadi saat Anda mencoba memberikan nilai yang tidak termasuk dalam rentang tersebut

Penanganan Error Dengan Try. Tangkap Blok

JavaScript menyediakan fungsionalitas penanganan pengecualian bawaan dengan blok try…catch…finally. Ini juga memungkinkan Anda untuk meningkatkan kesalahan Anda sendiri menggunakan operator lemparan

Anda dapat menggunakan blok try…catch untuk menangani kesalahan yang terjadi selama runtime. Anda menulis kode valid yang diharapkan dapat dijalankan dengan benar di blok try. Di blok tangkapan, Anda dapat menulis kode penanganan kesalahan

 try {
    // Valid Javascript code
} catch (error) {
    // Handle error
} finally {
    // Executed even when an error occurs
}

Blok catch diabaikan jika kode di blok try tidak menimbulkan kesalahan apa pun. Jika muncul error, eksekusi akan melompat ke blok catch. Kode di blok akhirnya berjalan apakah terjadi kesalahan atau tidak. Blok ini tidak wajib, jadi abaikan jika Anda tidak membutuhkannya

Kode yang Anda sertakan dalam blok coba harus valid. Jika tidak, JavaScript akan menimbulkan kesalahan parsing

Mari kita lihat contoh praktisnya

 try {
    console.log(text)
} catch (error) {
    console.log(error.message)
} finally {
    console.log("Will be executed regardless")
}
_

Program ini mencoba mencatat nilai dari variabel teks. Karena variabel itu tidak ditentukan, program akan menampilkan kesalahan. Kesalahan ini dicetak pada konsol di blok tangkap. Blok akhirnya kemudian berjalan dan mencetak pesannya sendiri

 ReferenceError: text is not defined
Will be executed regardless

Dalam situasi di mana Anda perlu meningkatkan kesalahan Anda sendiri, gunakan operator lemparan

Pertimbangkan contoh ini yang menimbulkan kesalahan jika datanya salah

 const data = getData()

try {
    if (!data) {
        throw "No data"
    }

    console.log(data)
    // continue
} catch(error) {
    console.log(error) // "No data"
}

Dalam contoh ini, program memanggil fungsi getData() dan menugaskan hasilnya ke variabel data. Di blok coba, blok melemparkan kesalahan khusus jika datanya kosong. Blok tangkapan menangkap kesalahan itu dan mencatatnya ke konsol

Melempar kesalahan sangat bermanfaat selama pengembangan. Anda dapat menggunakan pesan kesalahan khusus untuk memahami mengapa aplikasi Anda tidak berfungsi seperti yang diharapkan

Seperti yang ditunjukkan contoh ini, Anda dapat menggunakan string untuk objek kesalahan. Anda sebenarnya dapat membuang ekspresi JavaScript apa pun sebagai kesalahan. Namun, demi konsistensi dengan kesalahan bawaan, gunakan objek JavaScript yang berisi nama dan pesan

 throw {
    name: "Error name",
    message: "Error message"
}
_

Anda juga dapat menggunakan konstruktor bawaan JavaScript saat melempar kesalahan. Konstruktor ini antara lain Error, SyntaxError, dan ReferenceError

Untuk menampilkan error menggunakan konstruktor Error, gunakan kode ini

 throw new Error("No data")

Anda sekarang dapat mereferensikan nama dan pesan

 console.log(error.name) // Error
console.log(error.message) // No data
_

Memperluas Objek Kesalahan JavaScript

Kelas kesalahan khusus berguna saat menangani kesalahan yang tidak sesuai dengan objek yang sudah disediakan oleh JavaScript. Misalnya, Anda mungkin ingin mengisolasi kesalahan validasi data sebagai tipe khusus yang disebut ValidationError

Anda dapat menggunakan kelas JavaScript ES2015 untuk membuat kelas kesalahan khusus

 class ValidationError extends Error {
    constructor(message) {
        super(message);
        this.name = "ValidationError";
    }
}

Lemparkan kesalahan menggunakan kelas ValidationError seperti ini

 throw new ValidationError("Your error message")
_

Error yang dilempar akan berupa objek dengan nama dan nilai pesan

 {
    name: "ValidationError",
    message: "Your error message"
}
_

Kesalahan Ada untuk Membantu

Penanganan kesalahan adalah bagian mendasar dari pemrograman, bahasa apa pun yang Anda gunakan. JavaScript memiliki dukungan besar untuk menaikkan dan menangkap kesalahan dalam gaya pengecualian. Ini juga memiliki beberapa jenis kesalahan bawaan yang dapat Anda tangani dan gunakan untuk kasus Anda sendiri

Beberapa kesalahan seperti kesalahan sintaks dapat tidak terdeteksi saat Anda menulis JavaScript dalam "mode ceroboh". Menggunakan mode ketat memungkinkan JavaScript untuk menangkap kesalahan yang seharusnya diabaikan

Bagaimana kesalahan

Pernyataan try mendefinisikan blok kode untuk dijalankan (untuk mencoba). Pernyataan catch mendefinisikan blok kode untuk menangani kesalahan apa pun. Pernyataan akhirnya mendefinisikan blok kode untuk dijalankan terlepas dari hasilnya. Pernyataan lemparan mendefinisikan kesalahan kustom

Bagaimana kesalahan ditangani?

Teknik penanganan kesalahan untuk kesalahan logika atau bug biasanya dilakukan dengan debug atau pemecahan masalah aplikasi yang cermat . Aplikasi penanganan kesalahan dapat mengatasi kesalahan runtime atau meminimalkan dampaknya dengan mengadopsi tindakan pencegahan yang wajar tergantung pada lingkungan.

Apa yang terjadi ketika terjadi kesalahan dalam JavaScript?

Jika terjadi kesalahan di dalam blok try maka kontrol eksekusi dipindahkan ke blok catch . Dengan kata sederhana, coba periksa kesalahan apa pun, dan catch menerima kontrol eksekusi saat terjadi kesalahan dan dapat menanganinya. Setelah itu, program dilanjutkan seperti biasa. Jika tidak terjadi error, maka blok catch akan dilewati.

Bagaimana cara menghindari kesalahan JavaScript?

Anda dapat memeriksa kesalahan JavaScript menggunakan 5 cara berikut. .
Kesalahan terkait DOM – Ingatlah Urutan Eksekusi. .
Kesalahan Berbasis Sintaks – Waspadai Tanda Kurung. .
Penggunaan Kata Kunci Tidak Terdefinisi/Null yang Tidak Tepat – Ketahui Perbedaannya. .
Metode Tidak Terdefinisi – Ingatlah untuk Mendeklarasikan Sebelum Memanggil