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.