Os 4 tipos de erros em programação
Erros Específicos do PHP
As mensagens de erro do PHP, na maior parte dos casos, são bastante amigáveis. Vamos dar uma olhada em algumas e qual código as produziu.
Código:
includ("arquivo.txt");
Erro:
Fatal error: Call to undefined function: includ() in c:\program files\apache group\apache\htdocs\testserver\operator.php on line 21
Comentário:
Assumindo que includ() seja uma função indefinida, um erro semântico ocorre e a execução pára. Como você pode ver, o PHP mostra o erro e alguns detalhes (função indefinida), além de fornecer a linha onde ocorreu o erro.
Código:
$i = 1
echo $i;
Erro:
Parse error: parse error in c:\apache htdocs\teste\operadores.php on line 13
Comentário:
Usando o erro de sintaxe acima, o compilador sem dúvida irá achar a falta do ponto-e-vírgula na primeira linha do código. Contudo o erro não diz especificamente “Está faltando um ponto-e-vírgula”, um parse error diz ao programador que ocorreu um erro de sintaxe. Isso permite ao programador afiar sua habilidade de ‘debugar’ um tipo de erro específico.
Devemos lembrar que se o parse error for erro de sintaxe, nada será executado no script. Uma vez adicionado o ponto-e-vírgula à primeira linha do código, o script funcionará com sucesso.
Código:
// $j nem foi declarado ainda…
echo $j;
Erro:
Warning: Undefined variable: j in c:\apache htdocs\teste\operadores.php on line 12
Comentário:
Como você pode ver, isso é um aviso, não um erro (neste caso, a mensagem de atenção – warning – também é conhecida como nota - notice). Warnings ocorrem quando o PHP determina que alguma coisa está errada com o script, mas não é grave o suficiente para parar a sua execução.
É essencial entender que warnings não param a execução de um script. Quando um warning é encontrado, uma mensagem será exibida junto da saída do script, onde a linha do código contiver o problema. O PHP continuará a executar o restante do código até o fim.
Por exemplo, o código seguinte:
$i = 1;
echo $x;
echo $i;
Produzirá essa saída:
Warning: Undefined variable: x in c:\apache htdocs\teste\operadores.php on line 21
1
Nesse artigo analisamos 4 tipos diferentes de mensagens de erro e o que um programador pode fazer para corrigi-los. Analisamos alguns erros específicos do php e o que eles significam. Erros são inevitáveis na vida de programadores e aprender como lidar com eles utilizando métodos de rastreá-los podem aumentar bastante a produtividade e, o mais importante, aumentar o prazer de programar.
Espero ter contribuído com este artigo...
As mensagens de erro do PHP, na maior parte dos casos, são bastante amigáveis. Vamos dar uma olhada em algumas e qual código as produziu.
Código:
includ("arquivo.txt");
Erro:
Fatal error: Call to undefined function: includ() in c:\program files\apache group\apache\htdocs\testserver\operator.php on line 21
Comentário:
Assumindo que includ() seja uma função indefinida, um erro semântico ocorre e a execução pára. Como você pode ver, o PHP mostra o erro e alguns detalhes (função indefinida), além de fornecer a linha onde ocorreu o erro.
Código:
$i = 1
echo $i;
Erro:
Parse error: parse error in c:\apache htdocs\teste\operadores.php on line 13
Comentário:
Usando o erro de sintaxe acima, o compilador sem dúvida irá achar a falta do ponto-e-vírgula na primeira linha do código. Contudo o erro não diz especificamente “Está faltando um ponto-e-vírgula”, um parse error diz ao programador que ocorreu um erro de sintaxe. Isso permite ao programador afiar sua habilidade de ‘debugar’ um tipo de erro específico.
Devemos lembrar que se o parse error for erro de sintaxe, nada será executado no script. Uma vez adicionado o ponto-e-vírgula à primeira linha do código, o script funcionará com sucesso.
Código:
// $j nem foi declarado ainda…
echo $j;
Erro:
Warning: Undefined variable: j in c:\apache htdocs\teste\operadores.php on line 12
Comentário:
Como você pode ver, isso é um aviso, não um erro (neste caso, a mensagem de atenção – warning – também é conhecida como nota - notice). Warnings ocorrem quando o PHP determina que alguma coisa está errada com o script, mas não é grave o suficiente para parar a sua execução.
É essencial entender que warnings não param a execução de um script. Quando um warning é encontrado, uma mensagem será exibida junto da saída do script, onde a linha do código contiver o problema. O PHP continuará a executar o restante do código até o fim.
Por exemplo, o código seguinte:
$i = 1;
echo $x;
echo $i;
Produzirá essa saída:
Warning: Undefined variable: x in c:\apache htdocs\teste\operadores.php on line 21
1
Nesse artigo analisamos 4 tipos diferentes de mensagens de erro e o que um programador pode fazer para corrigi-los. Analisamos alguns erros específicos do php e o que eles significam. Erros são inevitáveis na vida de programadores e aprender como lidar com eles utilizando métodos de rastreá-los podem aumentar bastante a produtividade e, o mais importante, aumentar o prazer de programar.
Espero ter contribuído com este artigo...
Páginas:
1
2
Existem alguns debuggers para PHP, é questão de testar e ver o que melhor se adapta. Estou atualmente usando Eclipse com Trustudio/WebStudio PHP IDE (xored)
http://www.xored.com/products.php
que usa o DBG PHP Debugger e achei muito bom. Há também o XDebug - http://www.xdebug.org/
Optei por usar o Eclipse com o plugin trustudio em vez do PHPEclipse devido ao debugger. E todos são open source, alto nível e gratuitos.
[ ]'s
http://www.xored.com/products.php
que usa o DBG PHP Debugger e achei muito bom. Há também o XDebug - http://www.xdebug.org/
Optei por usar o Eclipse com o plugin trustudio em vez do PHPEclipse devido ao debugger. E todos são open source, alto nível e gratuitos.
[ ]'s
01/11/2003 10:34am
(~21 anos atrás)
Seria legal ter um depurador de php como os de C (C++ Builder, Visual C++), ou mesmo vb e delphi, que voce pode rodar o codigo passo a passo e ver os valores das variaveis em cada passo.
O dreamweaver, o phpeditor, sao otimos editores, mas seus depuradores sao baseados em "testar tudo"...
Uma empresa grande como a Macromedia devia tentar trabalhar junto com a Zend para desenvolver um depurador visual para php.. ou mesmo alguem trabalhar em uma versao open source..
evitaria o martirio dos interminaveis echos de teste
O dreamweaver, o phpeditor, sao otimos editores, mas seus depuradores sao baseados em "testar tudo"...
Uma empresa grande como a Macromedia devia tentar trabalhar junto com a Zend para desenvolver um depurador visual para php.. ou mesmo alguem trabalhar em uma versao open source..
evitaria o martirio dos interminaveis echos de teste
31/10/2003 2:29pm
(~21 anos atrás)
Um outro erro que tive e demorei a perceber era fazer a variável com a consulta sql colocando entre aspas duplas e colocando as variáveis passadas dentro das aspas, no windows funcionou bem uma vez, mas no linux não, depois foi o inverso.
Depois percebi que para evitar erros o ideal seria concatenar os valores...
Depois percebi que para evitar erros o ideal seria concatenar os valores...
30/10/2003 7:28pm
(~21 anos atrás)
Os echos são fundamentais para resolver problemas, uma mania que às vezes me atrasa é de testar a cada função ou consulta escrita, vou lá e testo se tiver tudo ok, continuo...
29/10/2003 7:20pm
(~21 anos atrás)
É Newton, acho q essa solução dos ECHOs é a mais utilizada por todos os programadores. Realmente ela é indispensável...
29/10/2003 5:52am
(~21 anos atrás)
Se vc tem um problema de lógica, o que eu faço pra debugar é enxer meu código de ECHO's. Sempre após cada ação vc imprime na tela as variaveis fundamentais da função e acompanha assim o funcionamento do programa! :).
ASsim você pode identificar onde exatamente está o erro e estudar sua solução!
ASsim você pode identificar onde exatamente está o erro e estudar sua solução!
27/10/2003 1:30pm
(~21 anos atrás)
Bom artigo. Vou deixar um registro de um erro que fiquei procurando em varios arquivos até encontrá-lo:
<input type="text" value="<?=$nome_arq;?>" name="$nome_arq" size="10" maxvalue="30">
Na pressa, colei o nome da variavel em name com o $. Simples, mas os erros mais banais são os mais encardidos de achar.
<input type="text" value="<?=$nome_arq;?>" name="$nome_arq" size="10" maxvalue="30">
Na pressa, colei o nome da variavel em name com o $. Simples, mas os erros mais banais são os mais encardidos de achar.
26/10/2003 9:31am
(~21 anos atrás)
não tenho certeza!!