Hướng dẫn xử lí exception trong Laravel
Chào các bạn, bài viết hôm nay mình sẽ giới thiệu về cách handler Exception trong Laravel. *Trong quá trình coding, chắn hẳn bạn sẽ gặp ít nhất một trường hợp phải ném Exception cho user hoặc response dữ liệu API. Vậy xử lí Exception như thế nào chính xác, mang lại hiệu quả cao nhất ? * ...
Chào các bạn, bài viết hôm nay mình sẽ giới thiệu về cách handler Exception trong Laravel.
*Trong quá trình coding, chắn hẳn bạn sẽ gặp ít nhất một trường hợp phải ném Exception cho user hoặc response dữ liệu API. Vậy xử lí Exception như thế nào chính xác, mang lại hiệu quả cao nhất ? *
Trong các version < 5.5, nếu muốn xử lí Exception, ta vào file Exceptions/Handler.php, chính xác hơn là trong method render() để xử lí. Tuy vậy, cách này không phải là cách tối ưu nhất ? Bởi vì sao ?
Ta xem ví dụ. Đây là method report() trong file Exception/Handler.php
[...] public function report(Exception $exception) { if ($exception instanceof CustomException) { // Do something } if ($exception instanceof MyOtherException) { // Do something } if ($exception instanceof MyOtherCustomException) { // Do something } return parent::report($exception); } [...]
Như các bạn thấy, ta phải xử lí rất nhiều exception trong function này. Vậy có tầm 20 Exceptions thì chúng ta phải vất vả hơn đúng không nào ?
=> Để giải quyết vấn đề này thì Laravel 5.5 đã đưa ra một cách xử lí hay hơn. Đó là, mỗi exception sẽ có method render riêng, không sử dụng chung trong file Exceptions/Handler.php. Để dễ hiểu hơn thì bạn theo dõi bài hướng dẫn mình nhé