O básico de PHP - Parte 15 Introdução Esta é a parte 15 das minhas séries, Noções básicas de PHP. Nesta parte da série, nós olhamos para as noções básicas de erros. Nota: Se você não pode ver o código ou se você acha que alguma coisa está faltando (link quebrado, imagem ausente), apenas contacte-me em [email protected]. Ou seja, contacte-me para o menor problema que você tem sobre o que você está lendo. Erros de programação Existem três tipos de erros de programação. Em outras palavras, existem três tipos de erros que podem ocorrer em um programa.
Você tem erros de sintaxe, erros de lógica e erros de execução. Erros de sintaxe Este é o uso errado de sintaxe. Esses erros são declarações erradas. Quando você digita uma declaração, que é errado, isso é um erro de sintaxe. Tal afirmação não pode ser executado. Por exemplo, em um comunicado você pode digitar uma variável sem o sinal $. Sob esta condição, o seu programa não funciona.
Dependendo de como você configurar a instalação do PHP, tal erro pode ser indicado pelo PHP para o dispositivo de saída, pouco antes do programa está a ser executado, quando você dá um comando para executar o programa. Com um erro de sintaxe, o programa não será executado. Antes de código PHP é executado, há alguma compilação mínimo que ocorre. Os erros de sintaxe seria manchado pelo compilador PHP e relatados, e execução (interpretação) do programa não terá lugar. Erros de lógica neste caso, PHP intérprete compreende o seu programa muito bem e ele executa o programa.
No entanto, o programa não vai fazer o que você queria fazer. Ele vai fazer algo ligeiramente diferente ou completamente diferente. A culpa é sua. Por exemplo, um loop que é necessário para fazer 10 iterações pode fazer 5 iterações, porque você codificou-lo erroneamente para fazer 5 iterações. Outro exemplo é que um laço pode iterar infinitamente, porque a condição que você deu para o loop é errado. Erros lógicos ocorrem quando o programa está sendo executado (interpretado).
A única maneira de resolver este problema é para testar seu programa muito bem antes de entregá-lo ao cliente (que pediu para ele). Runtime erros Runtime Erros ocorrer quando o programa está sendo executado como um resultado do fato de que você não tomar determinado fator em consideração quando a codificação. Por exemplo, digamos que o seu código é dividir 8 por algum denominador que as entradas do usuário. Se as entradas do usuário 2, a divisão vai funcionar, dando-lhe 4 como resposta. Se as entradas do usuário zero, a divisão não vai funcionar, porque 8/0 é indefinido.
Quando um erro de execução ocorre o seu programa normalmente cai (e parar). Para resolver erros de execução, você tem que escrever o código que irá impedir a execução do segmento de código especial de tomar lugar. Neste exemplo divisão, você tem que escrever o código que irá impedir a divisão por zero de acontecer, e, possivelmente, informando o usuário do erro que cometeu, introduzindo zero como um denominador. Evitando erros de execução Erros de execução são impedidos usando o que é chamado de blocos try-catch. Vamos usar o exemplo de como dividir 8 por um denominador para ilustrar isso.
Considere o seguinte código: $ input = 2; try {if ($ input == 0) throw new Exception ("Divisão por zero não é permitida. '); var = $ 8 /$ entrada; echo $ var; } Catch (Exception $ e) {echo "erro:", $ e-> getMessage (); }?> Experimente o código acima. Você deve ter 4 como a resposta, exibido. Agora altere o valor da variável $ input no início do código a 0. Você deve ter o texto, "Erro: Divisão por zero não é permitido." exibida. O código divide 8 pelo valor da variável de entrada $. Quando o valor da variável $ input não é zero, está tudo bem.
Quando o valor é zero, isto é um erro, e assim o programa não deve falhar. Código tem de ser escrito para evitar que o programa deixe de funcionar. Há quatro coisas que você deve observar sobre o código acima. Existe a-bloco try; há o bloco de captura; há um objeto criado a partir de uma classe chamada de exceção; e há uma declaração chamou a instrução throw em torno do início do bloco try. O try-bloco começa com a palavra reservada, tentar, então você tem o par de chaves. As declarações para o bloco try estão nas chaves. O catch-bloco começa com a palavra reservada, captura.
Tem parênteses com um parâmetro. O parâmetro é uma variável, precedido pelo tipo de variável (não vimos este tipo de variável antes). O catch-bloco tem um par de chaves. As declarações para o bloco catch ir para as chaves. A primeira declaração no bloco do try é uma declaração if-combinado com o que é chamado a instrução throw? A idéia é que você verifique se a variável $ entrada é zero. Se for zero, então a instrução throw é executada para evitar acidente. Quando a instrução throw é executado, dizemos uma exceção é lançada.
Quando uma exceção é lançada, as declarações abaixo a instrução throw no bloco try não são executadas; enquanto as declarações no bloco capturas deve ser executado; isto é, quando ocorre um erro, as declarações abaixo a instrução throw no bloco do try não são executadas, enquanto o bloco de captura deve ser executado para lidar com o problema. Se não houver erro (neste caso, a entrada é diferente de zero), então uma excepção não vai ser jogado. Se uma exceção não é lançada, as declarações abaixo as declarações jogar a-bloco try são executadas, e o bloco catch não será executado.
O try-bloco tem as declarações normais a serem executados para solucionar tarefa exigida pelo programa. Estas declarações são executadas sob a condição de que não ocorreu nenhum erro. O bloco catch tem as instruções a serem executadas se ocorrer um erro. Normalmente o que o bloco catch faz é que ele simplesmente informa ao usuário que ocorreu um erro com uma breve descrição do erro. Se o erro for detectado no bloco try e o bloco catch é executada como no código acima, em seguida, o programa não irá falhar.
Repito, geralmente, o bloco catch não faz muito mais do que exibir uma breve mensagem de erro para o usuário. Prevenção de acidente é como um resultado do fato de que as declarações normais no bloco try não são executados e o bloco catch é executado. Introdução à classe Exception Há uma classe chamada de classe Exception. Essa classe tem um bom número de membros e métodos. Para este tutorial básico vamos falar sobre apenas um dos seus membros. O membro detém a mensagem de erro que você quer dar ao usuário. Você, o programador, é a pessoa que decide sobre a mensagem de erro.
Você alimenta na mensagem de erro quando você cria um objeto da classe. Você cria um objeto ao mesmo tempo que você está jogando a exceção. No código acima, temos, throw new Exception ("Divisão por zero não é permitida. ') Aqui, a palavra reservada, lance, é lançar a exceção. A exceção é um objeto, que pode ter a mensagem de erro e outras coisas. Neste tutorial, vamos considerar apenas a mensagem de erro. Para criar um objeto de exceção, começamos com o operador, novo. Isto é seguido, com o nome de classe, excepção; em seguida, entre parênteses.
Nos parênteses, você digita a mensagem de erro entre aspas. A classe de exceção tem um método construtor que atribui esta mensagem de erro como valor de um dos seus membros (uma de suas variáveis). Este objeto exceção é lançada para ser capturado ser um catch-bloco. Assim, a declaração if detecta o erro, joga um objeto de exceção, que sabe o erro e o bloco catch identificou o objeto de exceção. O catch-bloco usa informações no objeto de exceção para completar o tratamento de erros. O catch-bloco A captura é como uma função. Tem parênteses, que tem um parâmetro.
O parâmetro é a variável para um objeto de exceção. Você escolhe que nome você quer para a variável, e precedê-lo com o sinal $. Você preceder a variável com a palavra, Exception. Isso significa que o tipo de variável é uma exceção. A instrução throw-é como uma chamada para o bloco catch. No código acima, temos a declaração de eco. A construção de eco leva uma lista de argumentos, separados por vírgulas. Neste caso, o primeiro argumento é a string "Erro:". Este texto será exibido pela primeira vez no browser. Esta cadeia indica ao utilizador que existe um erro.
A descrição do erro a partir da seguinte discussão seguinte. Esta próxima argumento para a construção de eco é um valor de retorno de um método do objeto de exceção. O que temos é exatamente: $ e->