Laravel — Обробка помилки 500, 404 та інших

368

Від автора: в Laravel помилка 500 і інші обробляються з допомогою класу app\Exceptions\Handler. Цей клас містить два методу -report і render.

Метод report()

Метод report() використовується для сповіщення або реєстрації винятків. Він також застосовується для відправки логів винятків зовнішнім службам, таким як Sentry, Bugsnag і т. д.

Метод render()

Метод render() використовується для відображення виключень в HTTP – відповіді, який відправляється в браузер.
Крім цих двох методів клас app\Exceptions\Handler містить важливу властивість з іменем «$dontReport». Це властивість приймає масив типів виключень, які не будуть реєструватися.

Виключення HTTP

Деякі виключення описують коди помилок HTTP, такі як 404, 500 і т. д. Щоб згенерувати такий відповідь в будь-якому місці програми, ви можете використовувати метод abort() наступним чином.

abort(404)

Користувальницькі сторінки помилок

Laravel спрощує використання користувальницьких сторінок помилок для кожного окремого коду помилки. Наприклад, якщо ви хочете надавати власну сторінку для коду помилки 404 , ви можете створити уявлення у файлі resources/views/errors/404.blade.php. Точно так само, якщо ви хочете надавати власну сторінку помилок для коду помилки 500 , її слід зберегти у файлі resources/views/errors/500.blade.php.

Приклад

Крок 1 — Додайте в файл app/Http/routes.php наступні рядки.

Route::get(‘/error’,function(){
abort(404);
});

Крок 2 — Створіть файл подання з ім’ям resources/views/errors/404.blade.php і скопіюйте цей файл наступний код.

404
html, body {
height: 100%;
}
body {
margin: 0;
padding: 0;
width: 100%;
color: #B0BEC5;
display: table;
font-weight: 100;
font-family: ‘Lato’;
}
.container {
text-align: center;
display: table cell;
vertical-align: middle;
}
.content {
text-align: center;
display: inline-block;
}
.title {
font-size: 72px;
margin-bottom: 40px;
}

Error 404

Крок 3 – Перейдіть за наступним URL-адресою, щоб перевірити подія. http://localhost:8000/error

Крок 4. Після відвідування URL-адреси ви отримаєте наступний висновок:

Laravel — Обробка помилки 500, 404 та інших