-2

Os 4 tipos de erros em programação

criado por Adhemar Zerlotini Neto em 25/10/2003 7:37pm
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...

Comentários:

Mostrando 1 - 8 de 8 comentários
Se eu nao me engano foi implementado um debugger no PHP5

não tenho certeza!!
07/11/2003 7:59am (~21 anos atrás)

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

01/11/2003 10:34am (~21 anos atrás)

ab disse:
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
31/10/2003 2:29pm (~21 anos atrás)

Diogo Gomes disse:
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...
30/10/2003 7:28pm (~21 anos atrás)

Diogo Gomes disse:
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)

Newton Wagner disse:
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!
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.
26/10/2003 9:31am (~21 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)