0

Try and Catch

 


Untuk menangani eror pada JavaScript, gunakan try dan catch. Penulisan kode try-catch untuk menangani eror adalah seperti ini:

  1. try {
  2.     // kode
  3. } catch (error) {
  4.     // error handling
  5. }

Taruh kode yang berpeluang menimbulkan eror di dalam blok try. Apabila terjadi eror di dalam blok kode try, maka ia akan ditangkap dan ditangani oleh blok kode catch. Sementara, jika tidak terjadi eror pada kode, maka blok catch akan diabaikan.

  1. try {
  2.     console.log("Awal blok try");
  3.     console.log("Akhir blok try");
  4. } catch (error) {
  5.     console.log("Tidak terjadi eror, maka kode ini diabaikan");
  6. }
  7.  
  8. /* output
  9. Awal blok try
  10. Akhir blok try
  11. */

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:

  1. try {
  2.     console.log("Awal blok try");   // (1)
  3.     errorCode;                      // (2)
  4.     console.log("Akhir blok try");  // (3)
  5. } catch (error) {
  6.     console.log("Terjadi error!");  // (4)
  7. }
  8.  
  9. /* output
  10. Awal blok try
  11. Terjadi error!
  12. */

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.

Selamat! Anda telah berhasil menangani eror dan menghindarkan aplikasi dari crash (Cobalah untuk menghapus sintaks try-catch dan melihat bagaimana aplikasi akan crash). Namun, bagaimana kita bisa tahu apa yang menyebabkan suatu program mengalami eror? Jika ada informasi yang jelas tentunya akan sangat membantu kita atau pengguna nantinya bukan?

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.

  1. try {
  2.     console.log("Awal blok try");   // (1)
  3.     errorCode;                      // (2)
  4.     console.log("Akhir blok try");  // (3)
  5. } catch (error) {
  6.     console.log(error.name);
  7.     console.log(error.message);
  8.     console.log(error.stack);
  9. }
  10.  
  11. /* output
  12. Awal blok try
  13. ReferenceError
  14. errorCode is not defined
  15. ReferenceError: errorCode is not defined
  16.     at file:///home/dicoding/Playground/javascript/CoffeeMachine/error.js:3:5
  17.     at ModuleJob.run (internal/modules/esm/module_job.js:152:23)
  18.     at async Loader.import (internal/modules/esm/loader.js:166:24)
  19.     at async Object.loadESM (internal/process/esm_loader.js:68:5)
  20. */

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.

  1. try {
  2.     console.log("Awal blok try");
  3.     console.log("Akhir blok try");
  4. } catch (error) {
  5.     console.log("Baris ini diabaikan");
  6. } finally {
  7.     console.log("Akan tetap dieksekusi");
  8. }
  9.  
  10. /* output
  11. Awal blok try
  12. Akhir blok try
  13. Akan tetap dieksekusi
  14. *
Posting Komentar
Theme
Share
Additional JS