Tutorial Laravel #22 : Error Handling Laravel

Laravel sudah menyediakan fitur atau konfigurasi yang bisa kita lakukan untuk menangani segala jenis error. Pada saat kita sedang mengerjakan sebuah project aplikasi, jika ada kesalahan code atau error yang terjadi, tentu kita ingin melihat error apa yang terjadi. Sehingga dengan melihat pesan error tersebut kita bisa mengetahui pada bagian mana saja yang terdapat error, sehingga kita bisa dengan mudah menemukan bug tersebut dan memperbaikinya.

Tapi, pada saat proyek aplikasi kita sudah dideploy dan sudah online, alangkah lebih baiknya error tersebut tidak terlihat pada bagian front-end, karena jika ada error yang terlihat ke pengguna pada saat pengguna menggunakan aplikasi yang kita buat, tentunya akan mengganggu tampilan aplikasi yang kita buat.

Error dan Logging Laravel

Konfigurasi untuk menyembunyikan dan menampilkan error pada laravel ada pada file .env. Cari bagian APP_DEBUG dan atur dengan true atau false, secara default pengaturannya adalah true. Sehingga error yang terjadi bisa terlihat.

Jika project laravel kita sudah selesai dan sudah siap di online-kan, ada baiknya untuk mengubah pengaturan APP_DEBUG menjadi false, agar error tidak lagi terlihat ke pengguna.

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:WhZo/Q4QOy4JTSOhA8rX5bBD9YyNX9cQTvwBYXedg5Q=
APP_DEBUG=false
APP_URL=http://localhost

Dengan menyembunyikan error laravel ini bukan berarti kita tidak bisa lagi melihat error pada aplikasi yang kita buat. Kita bisa melihatnya pada file log yang dibuat otomatis oleh laravel, yang letaknya ada pada folder storage/logs. Laravel akan membuat file-file log dan mengisinya dengan error-error atau proses yang terjadi dan dipisahkan berdasarkan tanggal, sehingga lebih mudah untuk kita analisa.

Sekarang kita buat contoh untuk Error Handling pada Laravel, kita gunakan project yang sebelumnya kita gunakan, yaitu latihan_laravel. Sekarang ubah pengaturan APP_DEBUG menjadi false, sehingga error tidak terlihat lagi, selanjutnya kita coba membuat error. Buat route baru seperti berikut :

Baca Juga  Mengatur Format Tanggal Ke Bahasa Indonesia pada Laravel

routes/web.php

Route::get('/errorhandling','ErrorController@index');

Route yang kita buat ini kita perintahkan untuk mengakses method index() dalam controller ErrorController.php. tapi controllernya JANGAN dibuat, karena pura-puranya kita lupa membuat controller tersebut sehingga error. Sekarang kita jalankan projectnya dengan perintah php artisan serve dan akses alamat localhost:8000/errorhandling, hasilnya seharusnya terlihat pemberitahuan error bahwa controller ErrorController.php dan method index() tidak ada atau belum dibuat, tapi karena kita mengatur false pada APP_DEBUG jadinya error tidak terlihat. Tapi karena kita mengatur APP_DEBUG nya menjadi false, sehingga error tersebut tidak terlihat dan diganti dengan halaman error 500 untuk menyembunyikan error tersebut.

Untuk melihat error-nya pada log, silahkan buka folder storage/logs, lihat file log dengan format tanggal hari ini.

Seperti yang terlihat pada log, ada pemberitahuan bahwa controller ErrorController.php tidak ada.

Menampilkan Pesan Error Laravel

Untuk mengetahui jenis error dan logging Laravel, berikut dokumentasi error dan logging dari laravel.

Untuk menampilkan pesan error pada Laravel kita bisa gunakan method abort() dan isi dengan nomor error yang ingin digunakan, misalnya 404, 403,500 dan lain-lain.

404 = Error karena halaman tidak ditemukan
403 = Error karena hak akses (forbidden)
500 = Error karena ada kesalahan pada server/code

dan lain-lain.

Berikut ini contoh menampilkan pesan error pada laravel, method ini bisa tkita terapkan langsung pada route atau controller.

buat contoh route seperti berikut.

routes/web.php

Route::get('/errorhandling/{nama}','ErrorController@coba');

Pada contoh route ini kita akan menggunakan method coba() pada controller ErrorController.php. Jadi data nama yang diinputkan pada url akan kita kirim ke method coba() dalam controller ErrorController.php.

Karena kita belum punya controllernya, maka sekarang kita buat sebuah controller baru dengan nama ErrorController.php.

Baca Juga  Tutorial CSS : #2 Layout dan CSS

app/Http/Controllers/ErrorController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class ErrorController extends Controller
{
    public function coba($nama)
    {
        if($nama == "deni")
        {
            return abort(403,'Anda tidak punya akses');
        }
        elseif($nama == "agus")
        { 
            return "Halo, ".$nama;
        }
        else
        {
            return abort(404);
        } 
    }
}

Perhatikan pada controller di atas, pada method coba(), kita tangkap data nama yang diinput pada url, kemudian kita cek jika namanya “deni”, maka kita tampilkan halaman error 403, dengan pesan “Anda tidak punya akses”.

Jika namanya adalah “agus”, maka kita return atau kembalikan nilai nama tersebut, jika semua kondisi tidak terpenuhi maka kita tampilkan halaman error 404.

Seperti yang sudah dijelaskan sebelumnya, untuk menampilkan halaman error di Laravel, kita bisa menggunakan method atau fungsi abort() dan kita isi nomor error nya yang kita inginkan, misalnya 404, 403, 500 dan lain-lain.

Parameter kedua hanya opsional, artinya boleh diisi boleh tidak, jika parameter keduanya kita isi, maka pesan error yang ditampilkan pada halaman error adalah pesan yang kita buat. Jika tidak maka pesan error yang ditampilkan adalah pesan error bawaan pada halaman error laravel. Pada contoh di atas sudah dicontohkan kedua model penulisan abort().

Kita lihat hasilnya dengan mengakses alamat localhost:8000/errorhandling/deni, maka hasilnya akan menampilkan error 403 seperti berikut :

Sekarang coba akses localhost:8000/errorhandling/agus, maka hasilnya akan tampil seperti berikut :

Seperti yang terlihat pada gambar di atas, karena yang kita input adalah “agus”, maka nilai variable $nama ditampilkan.

Selanjutnya kita coba akses localhost:8000/errorhandling/ahmad, maka hasilnya akan menampilkan error 404 seperti berikut :

Mengubah Tampilan Error Laravel

Kita juga bisa mengubah tampilan dari halaman error Laravel, caranya ketik perintah artisan berikut :

php artisan vendor:publish --tag=laravel-errors

Setelah mengetik perintah artisan di atas, maka Laravel akan membuat folder errors dalam folder views, dalam folder errors ini terdapat file-file view halaman error laravel yang bisa langsung kita ubah sesuai dengan keinginan.

Baca Juga  Tampilan Format Multimedia pada Halaman Web

Demikian tutorial Error Handling pada Laravel, semoga bermanfaat. Jika ada pertanyaan silahkan tuliskan di kolom komentar.

Related Post

Be the first to comment

Leave a Reply

Your email address will not be published.


*


error: Ga bisa dicopy