Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Laravel 5

Exception Handling di Laravel

by
Difficulty:BeginnerLength:MediumLanguages:

Indonesian (Bahasa Indonesia) translation by Sap (you can also view the original English article)

Dalam artikel ini, kita akan menjelajahi salah satu fitur yang paling penting dan paling sedikit dibahas dari Laravel web framework— exception handling. Laravel dilengkapi dengan built-in exception handler yang memungkinkan Anda untuk melaporkan dan membuat pengecualian dengan mudah dan ramah.

Di babak pertama artikel, kita akan menjelajahi pengaturan default disediakan oleh exception handler. Pada kenyataannya, kita akan pergi melalui default Handler class di tempat pertama untuk memahami bagaimana Laravel menangani exceptions.

Di babak kedua artikel, kita akan melanjutkan dan melihat bagaimana Anda bisa membuat custom exception handler yang memungkinkan Anda untuk mengerti custom exceptions.

Menyiapkan prasyarat

Sebelum kita melanjutkan dan menyelam ke Handler class lebih jauh, mari kita lihat beberapa parameter konfigurasi penting yang berkaitan dengan exceptions.

Silahkan membuka config/app.php file. Mari kita melihat dari dekat potongan berikut.

Seperti namanya, jika sudah diatur ke TRUE, ini akan membantu Anda untuk men-debug kesalahan yang dihasilkan oleh aplikasi. Nilai default dari variabel ini diatur ke nilai variabel APP_DEBUG environment dalam .env file.

Dalam development environment, Anda harus mengatur ke TRUE sehingga Anda dapat dengan mudah melacak kesalahan dan memperbaikinya. Di sisi lain, Anda harus mematikannya saat production environment, dan akan menampilkan halaman kesalahan umum dalam hal ini.

Selain menampilkan kesalahan, Laravel memungkinkan Anda untuk log errors dalam log file. Mari kita lihat pilihan yang tersedia bagi logging. Sekali lagi, mari kita beralih ke config/app.php file dan telah melihat dari dekat potongan berikut.

Laravel menggunakan Monolog PHP library untuk logging, Anda harus mengatur opsi di atas dalam konteks library nya.

File log standar terletak di storage/logs/laravel.log, dan cukup dalam kebanyakan kasus. Di sisi lain, APP_LOG_LEVEL diatur ke nilai yang menunjukkan tingkat keparahan kesalahan yang akan didata.

Jadi itu pengenalan dasar pilihan konfigurasi yang tersedia untuk exceptions dan logging.

Selanjutnya, kita akan melihat default Handler class yang datang dengan default aplikasi Laravel. Lanjutkan dan buka app/Exceptions/Handler.php file.

Ada dua fungsi penting yang handler class bertanggung jawab untuk — pelaporan dan rendering semua errors.

Mari kita telah melihat dari dekat report method.

Report method digunakan untuk log errors ke log file. Pada saat yang sama, hal ini juga penting untuk dicatat dontReport property, yang berisi daftar semua jenis pengecualian yang tidak boleh login.

Selanjutnya, mari kita membawa dalam render method.

Jika report method yang digunakan untuk log atau report errors, render method ini digunakan untuk membuat errors pada layar. Pada kenyataannya, method ini menangani apa yang akan ditampilkan kepada users ketika exception terjadi.

render method juga memungkinkan Anda untuk menyesuaikan response untuk berbagai jenis exceptions, sebagaimana kita lihat dalam bagian berikutnya.

Akhirnya, method unauthenticated menangani AuthenticationException exception yang memungkinkan Anda untuk memutuskan apakah akan ditampilkan kepada users dalam kasus mereka sedang tidak terauthentikasi untuk mengakses halaman yang mereka cari.

Custom Excepiton Class

Pada bagian ini, kita akan membuat custom exception class yang menangani exceptions dari jenis CustomException. Ide di balik menciptakan kelas kustom pengecualian adalah untuk mudah mengelola custom exceptions dan membuat custom responses pada waktu yang sama.

Lanjutkan dan buat file app/Exceptions/CustomException.php dengan isi sebagai berikut.

Hal yang penting untuk dicatat di sini adalah bahwa CustomException class harus memberikan inti Exception class. Untuk keperluan demonstrasi, kita hanya akan membahas render method, tapi tentu saja Anda juga dapat menyesuaikan report method.

Seperti yang Anda lihat, kami akan mengarahkan pengguna ke halaman kesalahan errors.custom dalam kasus kami. Cara itu, Anda dapat menerapkan halaman custom error untuk jenis exceptions tertentu.

Tentu saja, kita perlu membuat file view terkait di resources/views/errors/custom.blade.php.

Itu cukup sederhana Lihat file yang menampilkan pesan error, tapi tentu saja Anda bisa desain seperti yang Anda inginkan.

Kita juga perlu untuk membuat perubahan dalam render method app/Exceptions/Handler.php file sehingga custom exception class kami dapat dipanggil. Mari kita mengganti render method dengan isi sebagai berikut di app/Exceptions/Handler.php file.

Seperti yang Anda lihat, kita memeriksa jenis exception dalam render method di tempat pertama. Jika jenis exception \App\Exceptions\CustomException, kita memanggil render method dari class itu.

Jadi semuanya di tempat sekarang. Selanjutnya, mari kita lanjutkan dan buat controller file di app/Http/Controllers/ExceptionController.php sehingga kita dapat menguji custom exception class.

Tentu saja, Anda perlu menambahkan route yang terkait di routes/web.php seperti yang ditunjukkan dalam potongan berikut.

Dan dengan itu, Anda dapat menjalankan URL http://your-laravel-site.com/exception/index untuk melihat apakah ia bekerja seperti yang diharapkan. Ini harus menampilkan errors.custom sesuai konfigurasi kami.

Jadi itulah bagaimana Anda seharusnya menangani custom exceptions dalam Laravel. Dan itu membawa kita ke akhir artikel ini-saya harap Anda telah menikmati itu!

Kesimpulan

Hari ini, kita melewati exception handling fitur di Laravel. Di awal artikel, kami mengeksplorasi konfigurasi dasar yang disediakan oleh Laravel untuk render dan report exceptions. Lebih lanjut, kita melihat singkat standar exception handler class.

Di babak kedua artikel, kami menyiapkan custom exception handler class yang menunjukkan bagaimana Anda bisa menangani custom exceptions dalam aplikasi Anda.

Bagi Anda yang baru mulai dengan Laravel atau mencari untuk memperluas pengetahuan Anda, situs, atau aplikasi dengan ekstensi, kami memiliki berbagai hal yang Anda dapat belajar di Envato Market.

Saya akan senang mendengar dari Anda dalam bentuk pertanyaan dan saran!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.