Em Busca da “Zend PHP Yellow Pages”
Posts tagged erros
Erros – parte III – Erros de manipulação
Jan 15th
Seus scripts devem sempre ser capazes de recuperar de um erro, mesmo que esse erro seja apenas para informar o usuário do ocorrido. Desta forma, o script não irá finalizar inesperadamente, resultando em melhor comunicação com os usuários e evitando possíveis problemas.
Felizmente é muito fácil o tratamento do erro. Seus scripts podem declarar uma função “pega tudo”, que será chamada a função set_error_handler() pelo PHP quando uma condição de erro ocorrer, veja o exemplo abaixo:
$oldErrorHandler = ’’;
function myErrorHandler ($errNo, $errStr, $errFile, $errLine, $errContext) {
logToFile(“Erro $errStr no arquivo $errFile na linha $errLine”);
// Chame o oldErrorHandler
if ($oldErrorHandler) {
$oldErrorHandler ($errNo, $errStr, $errFile, $errLine, $errContext);
}
}
$oldErrorHandler = set_error_handler ($oldErrorHandler);
Como você pode ver, o nome da função do antigo manipulador de erros (se houver) será retornado pela chamada para set_error_handler(), pois isso permite-lhe juntar diversos tratadores de erro uns em cima dos outros, tornando assim possível ter dierentes funções tratando diferentes tipos de erros.
É importante manter em mente que seu manipulador de erro será completamente derivado do PHP. Assim o mecanismo de erro que será responsável por lidar com todos os erros, e parar a execução do script, se necessário.
A partir do PHP5, set_error_handler () suporta um segundo parâmetro que permite que você especifique os tipos de erros que um manipulador especial é responsável pela captura. Este parâmetro tem os mesmos valores constantes como o error_reporting () function.
Erros – parte II – Reportando Erros
Jan 14th
Depois de uma longa temporada sem escrever, estou retornando aos estudos, pois no fim de ano sabe como é? Muito trabalho e muita cerveja.
Por padrão, o PHP reporta qualquer erro que encontra na saída do script. A menos que você esteja em ambiente de depuração, sendo essa uma característica que raramente você vai querer pois ao exibir os erros dos seus scripts para os usuários, poderia ser gerado um grande problema de segurança.
Felizmente, várias diretivas de configuração podem ser ajustadas no arquivo php.ini, informando como e quais os erros serão relatados. Os mais importantes são error_reporting, display_errors e log_errors.
A directiva Error_reporting determina quais os erros são reportados pelo PHP. Por exemplo, o seguinte permite a comunicação de todos erros, exceto avisos:
error_reporting=E_ALL & ~E_NOTICE
Comunicação de erro também pode ser alterado dinamicamente a partir de dentro de um script chamando a
função error_reporting().
As diretivas display_errors e log_errors podem ser usadas para determinar como erros são relatados. Se display_errors está ligada, os erros são reportados quando ocorrem nos scripts. De modo geral, isso não é desejável em um ambiente de produção, porque todos serão capazes de ver os erros dos seus scripts. Sob essas circunstâncias, você vai querer ligar o log_errors, irá gerar um log com os registros de erros do servidor.
Erros – parte I – Erros e gerenciamento de erros
Aug 25th
Erros é uma parte integrada de qualquer linguagem de programação, embora, na maioria das vezes os programadores não queiram lidar com isso. PHP tem excelentes formas de tratamentos de erros, que proporcionam um controle detalhado sobre como os erros serão lançados, manipulados e comunicados.
Para começar falaremos sobre os tipos de erros. Existem vários tipos de erros, distribuídos em níveis:
| Erros em tempo de compilação | Os erros detectados pelo parser enquanto ele estiver compilando um script. |
| Erros fatais | Erros que interromper a execução de um script |
| Erros recuperados | Erros que representam falhas significativas, mas podem ser tratados de forma segura. |
| Advertências (Warnings) | Comunica erros que em tempo de execução. Não interrompe a execução do script. |
| Avisos (Notices) | Notifica que um erro ocorreu, mas esse erro não é necessariamente significativo. Não interrompe a execução do script. |
Como você pode ver, nem sempre é possível um script detectar e recuperar-se de uma falha. Com a exceção de analisar erros e erros fatais, no entanto, seu script pode ao menos ser avisados de que tenha ocorrido uma falha, dando-lhe a possibilidade de manipular erros de forma mais elegante.