Primeiramente gostaria que todos entendessem este post como uma forma de melhorar a técnica e lógica de todos os programadores, e não como uma represália ou retaliação à postagem de novos comentários.
Vejo com muita frequência "programadores" postarem erros em blogs ou fóruns e depois simplesmente ficam sentados à espera de uma resposta. Quem quer ser programador (sem aspas), deve aprender a interpretar os erros para encontrar a solução, e não ficar dependente de outras pessoas para solucionar qualquer tela anormal que aparece na execução de um sistema.
A propósito, você fez nosso curso GRÁTIS de PHP? Clique aqui para conhecer.
A primeira coisa que precisa ficar clara, é a diferença entre NOTICE, WARNING e ERROR, então vamos explicar um pouco sobre cada um deles:
Agora que já sabemos diferenciar cada um deles, tem outro detalhe importante: em um servidor de produção (onde a aplicação será executada) nunca devem ser mostrados NOTICES e WARNINGS, pois estes avisos são exclusivos para o desenvolvimento do sistema e servem apenas para orientar o programador. Você pode optar por desativar estes avisos em servidores locais (de desenvolvimento) apenas configurando o PHP.INI conforme mostramos nessa aula.
Essa tarefa é fundamental para aprender a achar a solução para cada problema em seus scripts. Qualquer tela de erro sempre irá apresentar todas as informações necessárias para que você identifique o erro e encontre a solução para o mesmo. Na tela sempre será apresentado além do tipo, uma breve descrição e também o arquivo e linha onde está acontecendo o problema. Vejamos então alguns exemplos práticos:
Na imagem acima temos um notice, que está nos dizendo o seguinte: variável não definida e em seguida nos dá o nome da variável teste, informando ainda o arquivo e a linha em que a variável está sendo invocada. A partir desta tela sabemos que na linha 2 do arquivo erros.php estamos tentando usar uma variável que não foi setada anteriormente.
Para solucionar este caso, precisamos definir um valor para a variável teste antes de tentar usá-la em nosso script.
Este alerta está informando que temos um problema com o comando include(arquivo.php) onde ouve uma falha ao abrir o fluxo pois o arquivo ou diretório não existe. Isso tudo acontece na linha 3 do arquivo erros.php.
Solução: verificar se o arquivo arquivo.php existe e se está dentro da pasta correta.
Este erro fatal aconteceu pois houve uma tentativa de instanciar um objeto de uma classe chamada nomeclasse na linha 2 do arquivo erros.php, porém esta classe não existe ou então não está inclusa no fluxo do nosso script. Para solucionar deve-se verificar a existência da classe com o nome indicado, e se o arquivo onde a classe se encontra está incluso no fluxo de execução através de um comando include ou require.
Por falar em require, quando você tentar incluir um arquivo que não existe ou errar o caminho do arquivo no require, o erro acima será mostrado. Portanto, quando seu erro disser Failed opening required, na verdade ele está dizendo que você errou o caminho do arquivo. Os caminhos para inserção de arquivos podem sofrer mudanças de um servidor para outro, portanto sempre verifique a questão de adicionar ou retirar uma barra (/) conforme sua necessidade.
Por exemplo, se você está dando um require($path."classe.php") e recebeu erro, tente require($path."/classe.php") ou o contrário caso a primeira tentativa tenha sido com uma barra.
Outro erro fatal muito comum é a chamada de funções que não existem, seja por erro de digitação ou por copiar códigos sem saber o que os mesmos fazem. Na imagem acima vemos um exemplo clássico que nos diz o seguinte: você está chamando uma função que não existe (inset) na linha 3 do arquivo erros.php. Logo, para solucionar você deve procurar a linha indicada e mudar a chamada da função pelo nome correto da mesma.
Este erro também pode ocorrer caso sua função esteja em um arquivo externo e o mesmo não está sendo carregado (include ou require) no arquivo atual.
Mais um erro fatal muito corriqueiro: chamar um método ou propriedade de uma classe antes de instanciar o objeto da mesma. Este erro acontece com frequência com iniciantes em programação orientada a objetos. Neste caso foi chamado o método setValor de uma classe, porém esse método foi chamado em uma variável que não é objeto da tal classe. Para solucionar é preciso instanciar o objeto antes de chamar o método indicado na linha 11 do arquivo erros.php.
Para finalizar nossos exemplos, vamos ver agora o erro que mais ocorre, principalmente com iniciantes ou programadores que sofrem com falta de atenção e/ou concentração:
Este erro está nos dizendo que é um erro de sintaxe, ou seja, escrita de comandos incorreta. Na linha 3 do arquivo erros.php está sendo esperado uma (,) ou um (;) mas foi encontrado um ECHO. Resumindo, você esqueceu de colocar algum caractere necessário para finalizar uma linha ou uma string ou qualquer outro comando.
Para solucionar, basta verificar a linha indicada para ver o que está faltando. É fundamental ter conhecimento da sintaxe da linguagem para identificar o que está faltando em seu script, seja um ponto ou uma vírgula ou qualquer outro caractere.
Este post não é um guia completo e muito menos definitivo sobre interpretação de erros, pois apenas apresenta um "norte" a ser seguido e dá exemplos básicos. Espero que a partir de agora fique mais fácil encontrar e solucionar problemas em seus sistemas, e que você possa ser um programador (sem aspas) profissional e independente.
Compartilhe esse post:Sou técnico em hardware e desenvolvedor web, e sobre estes dois assuntos comecei a compartilhar aulas e artigos, tornando-me blogueiro em 2008. Em 2010 esse hobby virou profissão, e desde então tenho buscado melhorar e profissionalizar cada vez mais os projetos que mantenho na web.
Atualmente temos 17 comentários para este post. Participe você também, clique aqui e comente sobre o assunto.
Ótimo post Obrigado :)
ResponderRicardo o mundo tem várias pessoas que só querem o mal dos outros e para nossa sorte temos pessoas como você, muitas vezes sem ganhar um centavo você vem ajudando e dando aulas para essa galerinha, parabens... Deus te ilumine para continuares assim e te dê sempre muita saúde e felicidades.
PARABENS...o/
Ótimo post!
Responderexcelente! seria legal se vc pudesse encontrar um tempo, para quem saber fazer umas video aulas. axo que no maximo 5 post já era o suficiente. Fica ae a dica, mas só quando arranjar tempo.
ResponderExcelente post, fico agradecido com a ajuda que você Ricardo que sempre tem ajudado nos videos, Deus te abençoe.
ResponderRicardo, parabéns pelo post. Excelente!
Abraços.
Ewerton Ventura
ResponderMuito obrigado pela informação Ricardo...
ResponderShow, sempre colocando algo para acrescentar aos nosso conhecimentos.
Obrigadão Ricardo!
ResponderNossa, não sou de comentar não. Mas neste post senti a necessidade de agradecer, esta é uma super ideia e que é de extremo beneficio para mim. Muito bom!
ResponderMuito bom o post.
Erros fazem parte da programação e saber interpretá-los é fundamental...
Valeu Ricardo, por ter enriquecido ainda mais meu conhecimento.
Parabéns Otimo post.
ResponderParabéns pelo post.
ResponderCara parabens show de bola mesmo... gostei muito!
ResponderMuito bom esse artigo. Parabéns!
ResponderMuito bom o artigo!
Parabéns, fica com Deus!
Responderadorei vai min ajuda muito vlw
Responder© 2008-2022 - RBTech.info | Todos os direitos reservados | Hospedado por Innova Host
É proibida a reprodução total ou parcial de qualquer conteúdo deste site.
OI, Ricardo, valeu pela dica um forte Abraço na paz de Deus!