Closed irmaosdev1 closed 1 week ago
Eu aconselharia, dentro do controller que está sendo chamado pelo método encapsular o método com um try catch, da seguinte maneira:
Try { joga a implementação aqui dentro } catch (Exception $e) { return response()->json($e->getMessage) }
Assim você fará com que o erro seja tratado e jogado como resposta para o Front-End
Minha sugestão é parecida com a do @RuanSalles. Minha sugestão é, criar uma variavel de estado no topo do componente que chama a api , essa variável pode se chamar error, conforme exemplo abaixo
const [error, setError] = useState(null);
logo após, na implementação da chamada da api, envolver o método com um try catch para capturarmos a exceção que vem do backend, por exemplo :
const pegarDadosBack= async () => { try { setError(null); await fetchDataFromApi(); } catch (err) { setError(err.message); // Nessa linha você seta o erro obtido na chamada da api, caso realmente exista erro } };
Logo após, basta mostrar na div o valor que está no estado error
Como eu havia dito na live do youtube, pela experiência que tenho com desenvolvimento, em Java, geralmente as mensagens de erro do back não são mostradas em tela, a menos que sejam mensagens tratadas, que estejam voltadas para uma regra de negócio do sistema.
As mensagem de erro de fato, seja um problema com conexão com o banco de dados, chamada de api, etc, geralmente colocamos no log da aplicação, para que posteriormente utilizando alguma ferramenta de logs, possamos corrigir o erro em si.
As mensagens de erro da aplicação não precisam aparecer para o usuário.
Descreva o bug
Ao informar um erro do sistema no client, ele exibe apenas uma mensagem genérica, em vez de transmitir a mensagem do server.
Como reproduzir
Existem várias formas, mas uma é:
Comportamento esperado
Gostaria que o "message" recebido do server fosse exibido caso a aplicação esteja em ambiente de desenvolvimento.
Screenshots (optional)
Componente de erro genérico:
Mensagem vinda do server: