Hallo apa kabar teman teman semuanya, semoga sehat dan sukses selalu. Kali ini kita akan membahas Javascript. Penanganan Eror pada Javascript.
Ketika kita membuat aplikasi pasti kita akan selalu menemukan eror. Apa karena kesalahan kita saaat membuat kode atau kesalahan input dari user. Aplikasi yang baik itu akan membuat pesan error sebagai pilihan ketika kode di eksekusi, karena itu akan mempermudah kita dalam menangani eror yang terjadi.
Kalian bisa pelajari juga tutorial javascript yang lainnya.
Tutorial Javascript: Convert waktu am pm to 24 Jam
Membuat Loading Saat Memuat Halaman
Tutorial JavaScript Part1 ~ Mengenal Javascript
Bagaimana menangani pesan eror agar tidak terjadi crash. Baiklah, kita langsung saja ke tutorialnya.
Try and Catch
Untuk menangani eror pada JavaScript, gunakan try dan catch. Penulisan kode try-catch untuk menangani eror adalah seperti ini:
try {
// code
} catch (error) {
// error handling
}
Pada kode di atas kita telah membuat kode, yang pertama kode try ini berfungsi untuk memberikan peluang kepada kode try untuk ditangkap dan ditangani oleh blok kode catch. Sementara, jika tidak terjadi eror pada kode, maka blok catch akan diabaikan.
try {
console.log("first blok try");
console.log("last blok try");
} catch (error) {
console.log("No error occurs, then this code is ignored");
}
/* output
first blok try
last blok try
*/
Kode di dalam blok try di atas tidak akan menghasilkan eror, sehingga kode di dalam blok catch akan diabaikan dan tidak dijalankan. Berikut ini adalah contoh kode yang menghasilkan eror:
try {
console.log("First blok try"); // (1)
errorCode; // (2)
console.log("Last blok try"); // (3)
} catch (error) {
console.log("An error occurred!"); // (4)
}
/* output
First blok try
An error occurred!
*/
Baris kode (2) akan menghasilkan eror. Eksekusi kode di dalam blok try akan dihentikan, sehingga baris kode (3) tidak akan tereksekusi. Kemudian kode akan dilanjutkan ke baris (4) atau blok catch.
Sekarang perhatikan blok catch. Di sana catch memiliki satu parameter bernama error (nama variabel bisa diubah). Variabel error tersebut merupakan sebuah object yang menyimpan detail informasi dari error yang terjadi.
Object error memiliki beberapa properti utama di dalamnya, yaitu:
- name : Nama error yang terjadi.
- message : Pesan tentang detail error.
- stack : Informasi urutan kejadian yang menyebabkan error. Umumnya digunakan untuk debugging karena terdapat informasi baris mana yang menyebabkan error.
Sekarang mari kita coba untuk mengubah kode dan menampilkan properti error di atas.
try {
console.log("First blok try"); // (1)
errorCode; // (2)
console.log("Last blok try"); // (3)
} catch (error) {
console.log(error.name);
console.log(error.message);
console.log(error.stack);
}
/* output
Awal blok try
ReferenceError
errorCode is not defined
ReferenceError: errorCode is not defined
at file:///home/dicoding/Playground/javascript/CoffeeMachine/error.js:3:5
at ModuleJob.run (internal/modules/esm/module_job.js:152:23)
at async Loader.import (internal/modules/esm/loader.js:166:24)
at async Object.loadESM (internal/process/esm_loader.js:68:5)
*/
Dari informasi di atas, kita bisa tahu bahwa error yang muncul adalah ReferenceError karena errorCode dianggap sebagai sebuah variabel atau nilai yang tidak terdefinisi.
try-catch-finally
Selain try dan catch, ada satu blok lagi yang ada dalam mekanisme error handling pada JavaScript, yaitu finally. Blok finally akan tetap dijalankan tanpa peduli apa pun hasil yang terjadi pada blok try-catch.
try {
console.log("First blok try");
console.log("Last blok try");
} catch (error) {
console.log("This line is ignored");
} finally {
console.log("Will still be executed");
}
/* output
First blok try
Last blok try
Will still be executed
*/
Throwing Errors
Sekarang kita akan mencoba pada kasus yang lebih umum terjadi. Perhatikan kode berikut ini:
let json = '{ "name": "Johon", "age": 20 }';
try {
let user = JSON.parse(json);
console.log(user.name);
console.log(user.age);
} catch (error) {
console.log(error.name);
console.log(error.message);
}
Pada kode di atas, fungsi JSON.parse akan melakukan parsing atau konversi dari variabel json (String) menjadi sebuah object. Skenario seperti di atas akan banyak kita temui ketika melakukan request ke API.
Jalankan kode di atas pada text editor Anda. Seharusnya aplikasi berjalan lancar tanpa menimbulkan eror.
Lalu, bagaimana jika json string tidak sesuai dengan format object JavaScript?
try {
let user = JSON.parse(json);
console.log(user.name);
console.log(user.age);
} catch (error) {
console.log(error.name);
console.log(error.message);
}
/* output
SyntaxError
Unexpected token b in JSON at position 2
*/
Apabila json tidak sesuai format, maka JSON.parse akan menimbulkan eror. Eror tersebut akan ditangkap oleh blok catch dan kode di dalamnya yang akan dieksekusi.
Demikian tutorial kali ini, semoga bermanfaat untuk kalian semua.
Terimakasih.