Independente da missão de nossa saga, seja esta de alegria ou desgraça, o Brasil tem que ser defendido!
        02
        07

        Manipulação de erros em PHP

        Bem, no que se refere a tratamento de erros, acredito que o PHP oferece muitas facilidades para os programadores, mas vamos aos fatos:
         
        Certo, o usuário não deve receber mensagem de erro na tela, primeiro que o mesmo não irá entender, segundo que mostra uma falha do site e deixa transparecer a falta de qualidade de quem programou!
         
        Errado, não basta apenas setar o error_reporting como zero pois isso é o mesmo que jogar a sujeira por debaixo do tapete!
         
        Então como devemos proceder?
         
        O PHP permite aos programadores setar uma função para receber as mensagens de erros geradas durante a execução do software!
         
        set_error_handler("ManipuladorErro");
         
        Na linha acima eu determinei que toda vez que o PHP gerar uma mensagem de erro que ele envie para a função ManipuladorErro fazer o tratamento! Isso mesmo eu tenho uma função que recebe todas as mensagens de erro com excessão é claro para os erros fatais que fazem com que o software seja encerrado, então segue abaixo o script :
         
         
         
         
         
        function ManipuladorErro($errno, $errstr='', $errfile='', $errline=''){



                if (error_reporting() == 0) return;
               
                    global $_CONFIG;
                    global $obj_daologError;
                    global $obj_entlogError;
                   
                    // Verifica se não foi chamada por uma 'exception'
                    if(func_num_args() == 5) {
                        $exception = null;
                        list($errno, $errstr, $errfile, $errline) = func_get_args();
                        //$backtrace = array_reverse(debug_backtrace());
                    } else {
                        $exc = func_get_arg(0);
                        $errno = $exc->getCode(); // Nome do erro
                        $errstr = $exc->getMessage(); // Descrição do erro
                        $errfile = $exc->getFile(); // Arquivo
                        $errline = $exc->getLine(); // Linha
                        //$backtrace = $exc->getTrace();
                    }
                    // A variável $backtrace pode ser usada para fazer um Back Trace do erro
                    // "Nome" de cada tipo de erro
                    $errorType = array (
                        E_ERROR => 'ERROR',
                        E_WARNING => 'WARNING',
                        E_PARSE => 'PARSING ERROR',
                        E_NOTICE => 'NOTICE',
                        E_CORE_ERROR => 'CORE ERROR',
                        E_CORE_WARNING => 'CORE WARNING',
                        E_COMPILE_ERROR => 'COMPILE ERROR',
                        E_COMPILE_WARNING => 'COMPILE WARNING',
                        E_USER_ERROR => 'USER ERROR',
                        E_USER_WARNING => 'USER WARNING',
                        E_USER_NOTICE => 'USER NOTICE',
                        E_STRICT => 'STRICT NOTICE',
                        E_RECOVERABLE_ERROR => 'RECOVERABLE ERROR'
                    );
                   
           
           
                    // Define o "nome" do erro atual
                    if (array_key_exists($errno, $errorType)) {
                        $err = $errorType[$errno];
                    } else {
                        $err = 'CAUGHT EXCEPTION';
                    }
                  


            }
         
         
        Com essa função eu consigo saber o tipo de erro, em qual arquivo e linha onde o erro foi encontrado, assim como a mensagem e data e hora do erro!
         
        No caso do NRF Framework eu utilizo essa função em conjunção com o banco de dados, ou seja toda mensagem gerada é armazenada em uma tabela do banco de dados, desta forma é possivel analisar a qualidade do software, problemas e assim realizar a devida correção!!

        Comentários

        Tipo de Posts
        Parceiros
        Feed

        Entre com o seu e-mail:

        Sobre

        Rafael Nonato Ribeiro Ferreira, graduado em Análise e Desenvolvimento de Sistemas pela Uninove, programador nas linguagens PHP, JavaScript, JQuery e Java, desenvolvedor web HTML e CSS desenvolve e modela em SGBDs Mysql, PostGreSQL e Oracle, atualmente trabalha como Analista e Desenvolvedor de Sistemas, é um brasileiro, cristão, patriota filiado ao PSOL e com convicções politicas próprias conforme será mostrado em seu futuro site www.constituicaoproposta.com.br, nas horas de folga gosta de tocar seu violão e compor letras de múisca, Torço para o São Paulo e para a Portela.

        © Copyright 2012 NRF Informática Soluções. All Rights Reserved.