Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

tanem

suprimir erro + try catch

Recommended Posts

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.