&reftitle.examples; Pode-se ver abaixo um exemplo de uso das capacidades de gerenciamento de erros no PHP. Define-se uma função de gerenciamento de erros que registra as informações dentro de um arquivo (usando um formato XML), e envia um e-mail ao desenvolvador se um erro crítico na lógica acontecer. Usando gerenciamento de erro em um script 'Erro', E_WARNING => 'Alerta', E_PARSE => 'Erro de Interpretação', E_NOTICE => 'Nota', E_CORE_ERROR => 'Erro de Núcleo', E_CORE_WARNING => 'Alerta de Núcleo', E_COMPILE_ERROR => 'Erro de Compilaçã', E_COMPILE_WARNING => 'Alerta de Compilação', E_USER_ERROR => 'Erro de Usuário', E_USER_WARNING => 'Alerta de Usuário', E_USER_NOTICE => 'Nota de Usuário', E_STRICT => 'Nota em Tempo de Execução', E_RECOVERABLE_ERROR => 'Erro Fatal Recuperável' ); // conjunto de erros para os quais um rastreamento de variáveis será gravado $user_errors = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE); $err = "\n"; $err .= "\t" . $dt . "\n"; $err .= "\t" . $errno . "\n"; $err .= "\t" . $errortype[$errno] . "\n"; $err .= "\t" . $errmsg . "\n"; $err .= "\t" . $filename . "\n"; $err .= "\t" . $linenum . "\n"; if (in_array($errno, $user_errors)) { $err .= "\t" . wddx_serialize_value($vars, "Variáveis") . "\n"; } $err .= "\n\n"; // para testes: // echo $err; // grava no registro de erros, e envia e-mail se houver um erro crítico error_log($err, 3, "/usr/local/php/error.log"); if ($errno == E_USER_ERROR) { mail("phpdev@example.com", "Critical User Error", $err); } } function distance($vect1, $vect2) { if (!is_array($vect1) || !is_array($vect2)) { trigger_error("Parâmetros incorretos, arrays esperados", E_USER_ERROR); return NULL; } if (count($vect1) != count($vect2)) { trigger_error("Vetores devem ser do mesmo tamanho", E_USER_ERROR); return NULL; } for ($i=0; $i ]]>