Penanganan pengecualian

(Dialihkan dari Exception Handling)

Penanganan pengecualian (Inggris: Exception handling) merupakan istilah di dalam bidang ilmu komputer yang merujuk kepada mekanisme respon dari munculnya "pengecualian" dari suatu proses komputasi. "Pengecualian" yang dimaksud adalah suatu keadaan tidak normal yang terjadi ketika eksekusi suatu program sehingga membutuhkan proses khusus yang bahkan dapat mengubah alur program itu sendiri. Pada Ilmu Komputer, penanganan pengecualian dapat dilakukan dari sisi perangkat lunak maupun perangkat keras. Perangkat lunak mengimplementasikan fitur penanganan pengecualian melalui suatu mekanisme yang disediakan oleh bahasa pemrograman, sedangkan Perangkat Keras menggunakan fitur pendeteksi kesalahan yang tertanam pada peranti keras untuk menangani kesalahan yang terjadi dalam proses komputasi.

Secara garis besar, suatu pengecualian ditangani dengan menyimpan keadaan eksekusi saat ini pada suatu tempat dan memindahkan eksekusi ke subrutin baru yang disebut penangan pengecualian (Bahasa Inggris: Exception Handler). Jika program bisa dikembalikan ke alur semula, penangan pengecualian akan melanjutkan proses ke subrutin utama yang sebelumnya terpotong oleh adanya pengecualian ini. Contoh pengecualian yang bisa dikembalikan adalah pembagian oleh nol, sementara contoh pengecualian yang tidak bisa dikembalikan (program akan dihentikan) adalah masalah kekurangan memori.

Penanganan pengecualian dalam bahasa pemrograman

sunting

Bahasa pemrograman C secara bawaan tidak memiliki mekanisme untuk penanganan pengecualian secara komprehensif. Penanganan hanya dilakukan dengan mengendalikan alur program menggunakan percabangan if else jika terjadi kesalahan yang dimaksud.

Hal tersebut berbeda dengan bahasa pemrograman modern yang berbasis objek seperti C++, C#, Java, dan Python. Bahasa pemrograman tersebut memiliki mekanisme penangkapan suatu pengecualian jika dilempar pada saat program dieksekusi.

Sintaks yang umumnya digunakan untuk penanganan pengecualian adalah try dan catch yang dituliskan sebagai sebuah bentuk blok yang terdiri dari beberapa baris rutin didalamnya. Pada blok try, rutin program secara normal akan ditulis kemudian jika terjadi pelemparan throw suatu pengecualian, maka program akan dialihkan ke blok catch sesuai dengan jenis pengecualiannya.