JavaScript - Custom Errors: A Panduan Pemula

Hai sana, para ahli JavaScript masa depan! Hari ini, kita akan melangkah ke dalam dunia kesalahan khusus dalam JavaScript. Jangan khawatir jika Anda baru dalam programming - saya akan menjadi panduan ramah Anda, memecahkan konsep kompleks menjadi potongan kecil, mudah untuk dimengerti. Jadi, ambil minuman kesukaan Anda, betahlah, dan mari kita masuk ke dalam!

JavaScript - Custom Errors

Kelas Error: Teman Baru Anda

Sebelum kita mulai membuat kesalahan khusus sendiri, mari kenal dulu kelas Error bawaan di JavaScript. Pensesannya seperti dasar yang kita bangun kesalahan-handling masterpiece kita.

Kelas Error adalah seperti templat untuk membuat objek kesalahan. Ketika ada yang salah di dalam kode Anda, JavaScript menggunakan kelas ini untuk memberikan Anda informasi tentang apa yang terjadi. Mari lihat contoh sederhana:

try {
throw new Error("Oops! Sesuatu salah!");
} catch (error) {
console.log(error.message);
}

Dalam contoh ini, kita sengaja melempar kesalahan menggunakan kata kunci throw dan kelas Error. Blok catch kemudian menangkap kesalahan ini dan mencatat pesannya ke konsol.

Ketika Anda menjalankan kode ini, Anda akan melihat:

Oops! Sesuatu salah!

Lihat betapa mudah itu? Kelas Error memberikan kita cara untuk membuat dan menangani kesalahan di dalam kode kita. Tetapi, apa bila kita ingin membuat jenis kesalahan yang lebih spesifik? Itu adalah di mana kesalahan khusus masuk!

Membuat Kesalahan Khusus Menggunakan Instance of Kelas Error

Sekarang kita mengerti kelas Error dasar, mari buat kesalahan khusus pertama kita. Kita akan mulai dengan metode paling sederhana: menggunakan instance of kelas Error.

function divide(a, b) {
if (b === 0) {
throw new Error("DivisionByZeroError: Tidak dapat membagi dengan nol!");
}
return a / b;
}

try {
console.log(divide(10, 0));
} catch (error) {
console.log(error.message);
}

Dalam contoh ini, kita membuat fungsi divide yang melempar kesalahan khusus saat seseorang mencoba membagi dengan nol. Ketika kita menjalankan kode ini, kita akan melihat:

DivisionByZeroError: Tidak dapat membagi dengan nol!

Metode ini sederhana dan efektif, tetapi tidak memungkinkan kita untuk membuat jenis kesalahan khusus benar-benar. Mari jelajahi metode yang lebih canggih!

Membuat Kesalahan Khusus Menggunakan Konstruktor Fungsi

Metode lain untuk membuat kesalahan khusus adalah dengan menggunakan konstruktor fungsi. Metode ini memberikan kita fleksibilitas lebih besar dalam mendefinisikan jenis kesalahan kita.

function CustomError(message) {
this.name = "CustomError";
this.message = message || "Terjadi kesalahan khusus";
this.stack = (new Error()).stack;
}

CustomError.prototype = Object.create(Error.prototype);
CustomError.prototype.constructor = CustomError;

try {
throw new CustomError("Ini kesalahan khusus saya!");
} catch (error) {
console.log(error.name + ": " + error.message);
}

Ketika kita menjalankan kode ini, kita akan melihat:

CustomError: Ini kesalahan khusus saya!

Metode ini memungkinkan kita untuk membuat jenis kesalahan baru dengan nama dan pesan default sendiri. Itu seperti membuat spesies kesalahan baru!

Membuat Kesalahan Khusus dengan Mengembangkan Kelas Error

Untuk trik terakhir kita, kita akan menggunakan sintaks kelas ES6 untuk mengembangkan kelas Error. Ini metode favorit saya karena itu bersih, intuitif, dan kuat.

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

function validateUser(user) {
if (!user.username) {
throw new ValidationError("Username diperlukan");
}
if (!user.email) {
throw new ValidationError("Email diperlukan");
}
}

try {
validateUser({ username: "johndoe" });
} catch (error) {
if (error instanceof ValidationError) {
console.log(`${error.name}: ${error.message}`);
console.log(`Kesalahan terjadi pada: ${error.date}`);
} else {
console.log("Terjadi kesalahan yang tak diketahui");
}
}

Ketika kita menjalankan kode ini, kita akan melihat:

ValidationError: Email diperlukan
Kesalahan terjadi pada: [tanggal dan waktu saat ini]

Metode ini memungkinkan kita untuk membuat kesalahan khusus yang kompleks dengan properti tambahan (seperti date dalam contoh ini) dan metode jika diperlukan.

Penutup: Tabel Metode

Untuk menguraikan metode yang kita pelajari, ini adalah tabel praktis:

Metode Kelebihan Kekurangan
Menggunakan Instance Error Sederhana, cepat untuk implementasi Batasan personalisasi
Konstruktor Fungsi Fleksibel, memungkinkan properti khusus Sintaks lebih kompleks
Mengembangkan Kelas Error Sintaks bersih, personalisasi penuh Memerlukan pemahaman kelas ES6

Ingat, tidak ada solusi ukuran satu. Metode terbaik tergantung pada kebutuhan khusus Anda dan kompleksitas proyek Anda.

Kesalahan khusus adalah seperti senjata rahasia di senjata JavaScript Anda. Mereka membantu Anda menangkap dan menangani masalah di dalam kode Anda lebih efektif, membuat program Anda lebih kokoh dan mudah untuk didebug. Jadi, pergilah, para pemula, dan semoga kesalahan Anda selalu khusus dan debugging Anda cepat!

Credits: Image by storyset