Penanganan masalah
Suatu kode dapat memiliki eror, atau kesalahan-kesalahan. Di Gara, kesalahan-kesalahan tersebut disebut sebagai masalah. Proses untuk mencegah agar masalah tidak membuat program berhenti bekerja disebut sebagai exception handling, atau yang dalam bahasa Indonesia berarti penanganan masalah.
Kode bermasalah
Mari kita mulai dengan suatu contoh. Kira-kira, apa yang akan terjadi jika kita menjalankan kode dibawah ini?
1 + nil
cetak("tidak dicetak")
Yang terjadi adalah Gara akan mencetak pesan bahwa terjadi Masalah, dan kode setelahnya untuk mencetak teks "tidak dicetak"
tidak akan dijalankan.
ERROR MasalahArgumen: tidak dapat menerima Nirdefinisi
Itulah yang disebut dengan masalah. Masalah adalah eror yang timbul ketika suatu baris kode tidak dapat dijalankan sesuai yang diharapkan. Suatu masalah yang tidak ditangani akan menyebabkan kode selanjutnya tidak dijalankan.
Penting
Suatu masalah yang tidak ditangani akan menyebabkan kode selanjutnya tidak dijalankan.
Penanganan masalah
Untuk menangani suatu masalah, kita menggunakan blok coba
dan tahan
yang memiliki sintaksis sebagai berikut:
coba {
<baris-baris kode>
} tahan (<variabel>) {
<kode setelahnya>
}
Dalam contoh 1 + nil
, kita dapat mencoba menangani kasus yang bermasalah tersebut sebagai berikut.
coba {
1 + nil
cetak("tidak dicetak")
} tahan (e) {
cetak("aku menahan masalah!!")
}
cetak("keluar dari blok coba-tahan")
Menajalankan kode diatas akan mencetak:
aku menahan masalah!!
keluar dari blok coba-tahan
Kenapa masalah muncul?
Dalam kasus 1 + nil
diatas, masalah jelas muncul karena kita tidak diperbolehkan melakukan operasi penambahan antara suatu objek berkelas Integer
dan objek nil
. Jelas, itu merupakan kesalahan yang disengaja.
Tapi terkadang, terdapat masalah yang bisa saja tidak kita sengaja. Misal, saat kita ingin mendownload file dari internet, tiba-tiba koneksi internet terputus. Pada saat itu, masalah bisa saja terjadi.
Juga sebagai pemrogram terkadang kita melakukan kesalahan yang tidak kita sengaja. Kita menganggap kode kita baik-baik saja, namun ada baris-baris kode yang bermasalah, entah karena logikanya yang salah atau alasan apapun. Kode seperti itu disebut juga kode yang buggy. Kode yang buggy seringnya melempar masalah.