6
respostas

Exibição de erros.

Durante os exercícios, implementando o método de remoção, acabei me deparando com um erro de digitação que me causou uma significante perda de tempo até ser encontrado, causando o não funcionamento da remoção.

Isso pq o erro estava no remover-produto.php

Seguindo a lógica do exercício, esse arquivo não era exibido no navegador, devido ao redirecionamento feito para o lista-produtos.php Ao remover o redirecionamento, o navegador exibiu o erro, e pude corrigi-lo com facilidade.

Existe uma forma mais simples para exibirmos esse tipo de erro sempre?

6 respostas

O erro de digitação era referente a código PHP Denis? Ou era textual mesmo? Pode mostrar um exemplo aqui?

Era um simples erro de digitação. Não na sintaxe.

<?php include("concecta.php");

Como o arquivo que chamava esse include não faz exibição de nada (por causa do redirecionamento), esse erro não foi exibido em lugar algum, me forçando a revisar todos arquivos em busca do erro.

Minha dúvida é se não existe um meio mais eficiente de acompanhar os erros no código.

Nesse caso específico, uma solução rápida seria não utilizar o include, e sim o require.

O include, quando não encontra o arquivo, apenas gera um WARNING. Já o require lança um erro quando o arquivo não é encontrado, então a execução teria sido interrompida.

No demais, você pode pesquisar sobre o xDebug para debugar suas aplicações.

Denis, a sugestão do Carlos funciona bem, eu achei que fosse erros mais graves.

Sim, a sugestão do Carlos resolve esse problema, caso ele seja específico do include.

Mas gostaria de saber se não existe outro meio de visualizar erros no código, além do navegador. Algum tipo de log, talvez?

O servidor built-in do PHP disponível pelo comando php -S loga tudo que acontece no servidor no terminal. Lá você pode ver se acontecem erros.

Você também pode programar uma função que escreve os erros em um arquivo, ou para a aplicação em qualquer erro ou coisa do tipo através da função set_error_handler do PHP, vou deixar link para a documentação aqui: http://php.net/manual/en/function.set-error-handler.php