JavaScript - Penanganan Kesalahan & Eksepsi

Hai sana, para ahli JavaScript masa depan! ? Selamat datang ke perjalanan yang menarik ke dunia penanganan kesalahan dalam JavaScript. Sebagai guru komputer yang ramah di lingkungan sekitar Anda, saya di sini untuk mengorbit Anda melalui petualangan ini. Jadi, pasang sabuk keselamatan Anda, dan mari kita masuk ke dalam!

JavaScript - Error Handling

Apa Itu Kesalahan?

Imajinasikan Anda sedang membuat kue ?, dan secara tak sengaja Anda menggunakan garam bukan gula. Itu adalah kesalahan! Dalam pemrograman, kesalahan adalah hal yang mirip - mereka adalah masalah yang tak diharapkan yang terjadi ketika kode kita dijalankan. Ini bisa berupa kesalahan penulisan, kesalahan logika, atau bahkan masalah dengan data yang kita gunakan.

Ini adalah contoh sederhana kesalahan dalam JavaScript:

console.log(Hello, World!);

Jika Anda menjalankan kode ini, Anda akan mendapat kesalahan karena kami lupa menaruh tanda kutip di sekitar teks kita. JavaScript mengharapkan string ada di dalam tanda kutip.

Apa Itu Penanganan Kesalahan?

Penanganan kesalahan adalah seperti memiliki jaring keselamatan saat Anda berjalan di tali licin. Itu adalah cara untuk mengelola kesalahan dalam kode kita dengan halus, mencegah program keseluruhan kita dari jatuh saat sesuatu sakit.

Statement try...catch...finally

Statement try...catch...finally adalah alat utama kita untuk menangani kesalahan dalam JavaScript. Itu seperti superhero trio yang datang untuk menyelamatkan hari! ?‍♀️?‍♂️?‍♀️

Ini adalah cara kerjanya:

try {
// Kode yang mungkin menyebabkan kesalahan
let result = 10 / 0;
console.log(result);
} catch (error) {
// Kode untuk menangani kesalahan
console.log("Ups! Terjadi kesalahan:", error.message);
} finally {
// Kode yang selalu dijalankan, tanpa mengira kesalahan
console.log("Ini selalu dijalankan!");
}

Dalam contoh ini:

  • Blok try mengandung kode yang mungkin menyebabkan kesalahan (membagi dengan nol).
  • Jika terjadi kesalahan, blok catch menangkapnya dan menangani secara halus.
  • Blok finally selalu dijalankan, baik ada kesalahan atau tidak.

Statement throw

kadang-kadang, kita ingin membuat kesalahan khusus kita sendiri. Itu di mana statement throw berguna. Itu seperti menjadi wasit dalam permainan dan memanggil pelanggaran! ?

Ini adalah contoh:

function checkAge(age) {
if (age < 0) {
throw new Error("Umur tidak bisa negatif!");
}
console.log("Umur valid:", age);
}

try {
checkAge(-5);
} catch (error) {
console.log("Menangkap kesalahan:", error.message);
}

Dalam kode ini, kita melempar kesalahan khusus ketika seseorang mencoba menggunakan umur negatif. Blok catch kemudian menangani kesalahan ini.

Properti Pengguna onerror

Properti pengguna onerror adalah seperti memiliki penjaga yang waspada untuk keseluruhan aplikasi JavaScript Anda. Itu menangkap kesalahan yang terjadi di mana saja dalam kode Anda.

Ini adalah cara Anda bisa menggunakannya:

window.onerror = function(message, source, lineno, colno, error) {
console.log("Terjadi kesalahan:");
console.log("Pesan:", message);
console.log("Sumber:", source);
console.log("Baris:", lineno);
console.log("Kolom:", colno);
console.log("Objek kesalahan:", error);
return true;
};

// Ini akan memicu pengguna onerror
nonExistentFunction();

Kode ini menyetel pengguna global penanganan kesalahan yang akan menangkap semua kesalahan yang belum ditangkap dalam aplikasi Anda.

Referensi Objek Kesalahan JavaScript

JavaScript menyediakan beberapa jenis kesalahan bawaan. mari kita lihat mereka dalam tabel yang mudah:

Jenis Kesalahan Deskripsi
Error Jenis kesalahan umum
SyntaxError Terjadi saat ada kesalahan sintaks di kode
ReferenceError Terjadi saat merujuk variabel yang tidak ada
TypeError Terjadi saat nilai bukan jenis yang diharapkan
RangeError Terjadi saat nilai di luar rentang yang diperbolehkan
URIError Terjadi saat menggunakan fungsi URI yang salah
EvalError Terjadi dalam hubungan dengan fungsi eval()

Ini adalah contoh bagaimana kesalahan ini mungkin terjadi:

try {
// SyntaxError
eval("Hello World");

// ReferenceError
console.log(undefinedVariable);

// TypeError
null.f();

// RangeError
let arr = new Array(-1);

// URIError
decodeURIComponent("%");

} catch (error) {
console.log(error.name + ": " + error.message);
}

Setiap baris ini akan melempar jenis kesalahan yang berbeda, yang blok catch kita akan tangani.

Dan itu adalah, murid-murid sayang! Kita telah berpetualangan melalui negeri penanganan kesalahan JavaScript. Ingat, kesalahan bukan musuh Anda - mereka adalah umpan balik berharga yang membantu Anda meningkatkan kode Anda. Embrasyikan mereka, belajar dari mereka, dan segera Anda akan menangani kesalahan seperti seorang ahli! ?

Terus kode, terus belajar, dan jangan lupa untuk bersenang-senang dalam perjalanan! Sampaijumpa di pelajaran berikutnya! ?

Credits: Image by storyset