JavaScript - Kesalahan Pribadi: Panduan untuk Pemula

Halo sana, para ahli JavaScript masa depan! Hari ini, kita akan memulai perjalanan menarik ke dunia kesalahan pribadi di JavaScript. Jangan khawatir jika Anda baru dalam pemrograman - saya akan menjadi panduan teman baik Anda, memecahkan konsep kompleks menjadi bagian kecil, mudah untuk dimakannya. Jadi, ambil minuman favorit Anda, nyamanlah, dan mari kita masuk ke dalam!

JavaScript - Custom Errors

Kelas Kesalahan: Teman Baru Anda

Sebelum kita mulai membuat kesalahan pribadi kita sendiri, mari kenal dulu kelas Kesalahan bawaan di JavaScript. P想象它为构建错误处理杰作的基础。

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

try {
throw new Error("Oops! Ada yang 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! Ada yang salah!

Lihat betapa mudah itu? Kelas Kesalahan memberikan kita cara untuk membuat dan menangani kesalahan dalam kode kita. Tetapi, apa bila kita ingin membuat jenis kesalahan yang lebih spesifik? Itu adalah tempat kesalahan pribadi memasuki!

Membuat Kesalahan Pribadi Menggunakan Instansi Kelas Kesalahan

Sekarang kita mengerti kelas Kesalahan dasar, mari buat kesalahan pribadi pertama kita. Kita akan mulai dengan metode paling sederhana: menggunakan instansi kelas Kesalahan.

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

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

Dalam contoh ini, kita membuat fungsi bagi yang melempar kesalahan pribadi ketika 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 itu tidak memungkinkan kita untuk membuat jenis kesalahan pribadi yang benar-benar khusus. Mari kita jelajahi beberapa metode yang lebih tingkat tinggi!

Membuat Kesalahan Pribadi Menggunakan Konstruktor Fungsi

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

function CustomError(message) {
this.name = "CustomError";
this.message = message || "Ada kesalahan pribadi yang terjadi";
this.stack = (new Error()).stack;
}

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

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

Ketika kita menjalankan kode ini, kita akan melihat:

CustomError: Ini adalah kesalahan pribadi saya!

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

Membuat Kesalahan Pribadi dengan Mengembangkan Kelas Kesalahan

Untuk trik terakhir kita, kita akan menggunakan sintaks kelas ES6 untuk mengembangkan kelas Kesalahan. Ini adalah 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("Ada 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 pribadi kompleks dengan properti tambahan (seperti date dalam contoh ini) dan metode jika diperlukan.

Penutup: Tabel Metode

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

Metode Keuntungan Kerugian
Menggunakan Instansi Kesalahan Sederhana, mudah diterapkan Kustomisasi terbatas
Konstruktor Fungsi Fleksibel, memungkinkan properti khusus Sintaks lebih kompleks
Mengembangkan Kelas Kesalahan Sintaks bersih, kustomisasi penuh Memerlukan pemahaman kelas ES6

Ingat, tidak ada solusi yang cocok untuk semua. Metode terbaik tergantung pada kebutuhan khusus Anda dan kompleksitas proyek Anda.

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

Credits: Image by storyset