tanem 0 Denunciar post Postado Janeiro 19, 2010 estou com a seguinte dúvidad, existe algumas funções mesmo dentro de try catch ( com tratamento de exceptoion) que ainda dispara warning? exemplo estou tentatando brincar com ldap aqui e aparece o erro das funções do mesmo só ficam suprimidos se colocar @. segue o codigo Ldap.class.php class Ldap{ private $conexao=''; function conecta($serv){ if(!($this->conexao = ldap_connect($serv))) { throw new Exception('Não foi possivel conectar!'); } } function autUsuario($user,$senha){ if(!($aut = ldap_bind($this->conexao,$user,$senha))) { throw new Exception('Usuario não foi autenticado'); } } } index.php <?php require_once 'Ldap.class.php'; $ldap = new Ldap(); try { $ldap->conecta('enddosservidor'); $ldap->autUsuario('usuario','senha'); } catch(Exception $e) { echo $e->getMessage(); } ?> Warning: ldap_bind() [function.ldap-bind]: Unable to bind to server: Invalid credentials in "diretorio"/Ldap.class.php on line 14 Usuario não foi autenticado ou seja, a mensagem que foi levantada pela exception aparece, porem, tambem aparece o erro. valeu. (galera essa classe só estou começando a montar, e fazendo testes hem... não tem nada nela rsrsrs) Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Janeiro 20, 2010 Cara não entendi nada de sua dúvida... Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Janeiro 20, 2010 O try...catch tem de ir no(s) método(s) da sua classe, pois se algum erro ocorrer o próprio método da classe irá interromper o restante da execução do script. Do jeito que está fazendo o resultado é exatamente o obtido: o erro da LDAP seguido da sua Exception. Compartilhar este post Link para o post Compartilhar em outros sites
tanem 0 Denunciar post Postado Janeiro 22, 2010 Galera, O problema é o seguinte, coloco o try entre os códigos que podem ocorrer algum tipo de erro, porem, o mesmo alem de pegar a mensagem que foi levantada pela exception ele tambem mostra o warning, gostaria de saber se pra pegar somente a mensagem levantada pelo throw será preciso eu colocar o @ nas funções php(ldap_connect,ldap_bind). Imaggens, Mas o certo seria no metodo voce fazer a validação e levantar(throw) a exceção, e pega-la , na execução do código dentro de um try catch. Se eu colocar um catch dentro da classe ele me retornaria a mensagem, o certo seria levantar a exceção e dentro do try (na aplicação) se houver alguem erro o getMessage() ja pegaria o erro que foi levantado na classe, não? valeu. Compartilhar este post Link para o post Compartilhar em outros sites