Tutorial Laravel 6 - Error Handling pada Datatable

Post a Comment


Setelah sekian lama tidak update blog dikarenakan kesibukan di dunia nyata, artikel kali ini saya akan menjelaskan bagaimana caranya mengatasi error yang muncul saat kita menggunakan laravel datatable.

Permasalahan yang saya alami biasanya adalah ketika kita membuka suatu halaman web yang menggunakan datatable, dan kemudian kita tidak mengaksesnya cukup lama namun tab halaman tersebut masih terbuka di browser kita. Maka yang terjadi adalah saat kita melakukan klik pada datatable (misal melakukan search, berpindah ke page selanjutnya, dll) akan muncul error yang menunjukkan bahwa session sudah expired.

Sebagai sesama programmer tentu hal ini dapat mudah dimengerti karena memang session perlu kita batasi untuk mencegah hal-hal yang tidak diingini. Misal ketika user lupa logout dan komputer user tersebut dipakai orang lain maka program masih tetap dapat terbuka jika kita tidak memberi batasan waktu pada session.

Namun, notifikasi session expired pada datatable ini akan dianggap sebagai suatu error jika yang mengalaminya adalah user yang bukan programmer. Walaupun kita sudah menjelaskan mengapa hal itu terjadi, biasanya tetap saja user melakukan protes kepada kita :).

Nah bagaimana cara mengatasi permasalah tersebut,

Caranya sangat mudah. Cukup menambahkan sepotong kode di bawah ini


$.fn.dataTable.ext.errMode = 'none';
$(document).ajaxError(function(event, jqxhr, settings, exception) {
if (jqxhr.status == 200) {
alert('Session expired. Please relogin');
window.location.reload(true);
} else 
if (jqxhr.status == 500) {
alert('Program error. Please contact IT Dept');
}
});

Kode $.fn.dataTable.ext.errMode = 'none'; digunakan untuk mengubah mode error pada datatable menjadi none. Jadi ketika muncul error pada datatable, program tidak akan melakukan hal apapun.

Nah pada baris berikutnya baru kita melakukan pengecekan error yang terjadi dan bagaimana penangnannya. Pada contoh kode di atas, saya melakukan 2 pengecekan error, yaitu error 200 dan error 500.

Penanganan yang saya berikan saat muncul error 200 adalah dengan memunculkan alert Jika Session expired dan kemudian melakukan refresh pada halaman itu. Pada program yang saya buat biasanya, sudah terdapat pengecekan jika session habis maka program akan melakukan redirect ke halaman login saat mengakses halaman-halaman yang lain.

Sedangkan jika muncul error 500, saya hanya menampilkan pesan untuk menghubungi departemen IT dikarenakan error 500 ini biasanya muncul jika terjadi kesalahan pada koding yang kita buat (biasanya ya bukan selalu).

Nah penanganan error ini dapat anda buat sesuai dengan kebutuhan anda. Saya hanya memberikan contoh bagaimana cara membaca error dan contoh penanganan sederhananya saja. Silahkan modifikasi sendiri jenis error apa saja yang ingin anda tangani dan bagaimana cara penanganan yang anda butuhkan untuk setiap error yang anda lakukan pengecekan.

Seperti biasanya, silahkan gunakan kolom komentar di bawah jika anda mengalamu kesulitan mengaplikasikan program di atas. Segala pertanyaan mengenai artikel ini dapat anda tuliskan pada kolom komentar dan biasanya saya akan menjawab setiap pertanyaan yang ada. Terima kasih

Related Posts

Post a Comment