@page404

Сколько и каким образом «отлавливать» исключений (ошибок) при запросе?

Сделал механизм запроса ответа и столкнулся уже с несколькими ошибками которые возникли в процессе запроса ответа. т.е. делая запрос мы ожидаем ответ :
Верно или неверно .
Но ведь еще могут появится неожиданные ошибки по различным причинам.
к примеру:
устанавливаю несуществующее поле при запросе в БД выполняемом на сервере куда прилетел запрос-- получаю 500 статус , а пользователю такое не надо видеть. Необходимо обработать ошибку? но ее надо поймать.

try{
            
            $response = $client->request('POST', 'test');
         
}catch(\GuzzleHttp\Exception\RequestException $e){        
                if ($e->hasResponse()) {
                    $response = $e->getResponse();
 }
/**
 * отлаливаем ошибки при коннекте с сервером
 */
    }catch(\Exception $ex){
        
        \Log::info(__METHOD__.' == Error connect in site. '.$ex->getMessage());
        
        return redirect('/')->with('status','Что то пошло не так, повторите позже.');
    }


делаю sleep(200) ,на сервере куда прилетел запрос, чтобы превысить интервал ожидания и получаю ошибку соответствующую , а мне ее отловить надо чтобы обработать, а эти блоки ее не ловят.
Собственно вопрос сколько же надо учитывать вероятных ошибок , вернее каким образом оформить их отлов и обработку.
код в Laravel 5.*
  • Вопрос задан
  • 142 просмотра
Пригласить эксперта
Ответы на вопрос 2
FanatPHP
@FanatPHP
Чебуратор тега РНР
Во-первых и в самых главных - не заниматься фигней и не делать бессмысленную работу.
Но для этого надо немного понимать, как работают веб-приложения.
В частности, что "500 ошибка" - это и есть та страница, на которой пишут "Что то пошло не так, повторите позже."
Соответственно находим шаблон этой страницы и правим под себя.

То есть ошибки, после которых продолжение работы бесполезно, вообще никак не отлавливать не надо. Ларавель сама за тебя все отловит и напишет. Потому что в ней уже все оформлено, и отлов и обработка. И не надо туда лезть руками.

Дальше, если ошибка не критическая и продолжение работы возможно, отлавливать трай кетчем.

Если какая-то не отлавливается - надо смотреть какая и почему. Если самостоятельно не получается - привести полный текст ошибки и код отлова в своем вопросе, а не бубнить "я получаю, а мне надо, а они ниловят"

В целом же стараться "отлавливать и оформлять" как можно меньше. И стараться понимать, что ты работаешь с современным фреймворком, в котором все нужное уже есть, а не по-старинке говнякаешь на коленке
Ответ написан
@BorisKorobkov Куратор тега PHP
Web developer
устанавливаю несуществующее поле при запросе в БД

Код в студию. И заодно код, где ты пытаешься это поймать, но почему то не ловится.
В указанном коде ловятся ошибки только в "$client->request('POST', 'test');", но там ошибок и так нет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы