JavaScript - Penanganan Kesalahan dan Eksepsi

Hai teman-teman, para ahli JavaScript masa depan! ? Selamat datang ke perjalanan menarik kita ke dunia penanganan kesalahan dalam JavaScript. Sebagai guru komputer yang ramah di lingkungan sekitar Anda, saya di sini untuk mengarahkan Anda melalui petualangan ini. Jadi, sabikan seatbelt Anda, dan mari kita masuk ke dalam!

JavaScript - Error Handling

Apa Itu Kesalahan?

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

Berikut adalah contoh sederhana kesalahan dalam JavaScript:

console.log(Hello, World!);

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

Apa Itu Penanganan Kesalahan?

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

Statement try...catch...finally

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

Berikut 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 berjalan, tanpa mengira kesalahan
console.log("Ini selalu berjalan!");
}

Dalam contoh ini:

  • Blok try berisi kode yang mungkin menyebabkan kesalahan (pembagian oleh nol).
  • Jika terjadi kesalahan, blok catch menangkapnya dan menangani nya dengan mulus.
  • Blok finally selalu berjalan, terlepas dari apakah 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 pertandingan dan memanggil pelanggaran! ?

Berikut adalah contoh:

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

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

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

Properti onerror Event Handler

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

Berikut adalah cara Anda dapat 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 handler kesalahan
nonExistentFunction();

Kode ini mengatur handler kesalahan global 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 praktis:

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

Berikut 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 dia, teman-teman saya! Kita telah melakukan perjalanan melalui negeri penanganan kesalahan JavaScript. Ingat, kesalahan bukan musuh Anda - mereka adalah umpan balik berharga yang membantu Anda meningkatkan kode Anda. Embraksikan mereka, belajar dari mereka, dan segera Anda akan menangani kesalahan seperti seorang pro! ?

Tetap mengoding, tetap belajar, dan jangan lupa bersenang-senang dalam perjalanan! Sampai jumpa di les berikutnya! ?

Credits: Image by storyset