Ir para conteúdo

Arquivado

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

rvlira

Exceção no PHP

Recommended Posts

Olá pessoal! Se tem algo que eu nunca consegui entender direito no PHP são as exceções.

Quando programo com Delphi ou C++ consigo facilmente fazer o programa perceber que houve uma exceção, tratar e fazer isso tudo passar desapercebido ao usuário. Isso é o que eu queria fazer no PHP, mas não consigo. Já li o manual do PHP na parte de exceções, mas deve ter algo que ainda estou fazendo errado. O mais próximo que cheguei foi esse código:

 

<?php

   $DB_HOST = "localhost";
   $DB_NAME = "MeuBanco";
   $DB_USER = "MeuNome";
   $DB_PASS = "MinhaSenha";

   try {

	  $conexao = mysql_connect($DB_HOST, $DB_USER, $DB_PASS);

   } catch {
   }

   echo "<p>Esse texto deve ser exibido</p>";

?>

Só isso. Coloquei nas "constantes" lá em cima dados propositais que irão gerar uma exceção.

Ao rodar o script aparece a mensagem de erro falando que não foi possível conectar no banco e depois o texto que deve ser exibido é exibido. Minha pergunta é: como fazer para a mensagem de erro da conexão não ser exibida nessa página?

 

Novamente agradeço a todos pela ajuda!

 

t+!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Insira um @ antes do que deseja ocultar o erro:

 

<?php

   $DB_HOST = "localhost";
   $DB_NAME = "MeuBanco";
   $DB_USER = "MeuNome";
   $DB_PASS = "MinhaSenha";

   try {

	  [b]@[/b]$conexao = [b]@[/b]mysql_connect($DB_HOST, $DB_USER, $DB_PASS);

   } catch {
   }

   echo "<p>Esse texto deve ser exibido</p>";

?>

 

Olá pessoal! Se tem algo que eu nunca consegui entender direito no PHP são as exceções.

Quando programo com Delphi ou C++ consigo facilmente fazer o programa perceber que houve uma exceção, tratar e fazer isso tudo passar desapercebido ao usuário. Isso é o que eu queria fazer no PHP, mas não consigo. Já li o manual do PHP na parte de exceções, mas deve ter algo que ainda estou fazendo errado. O mais próximo que cheguei foi esse código:

 

<?php

   $DB_HOST = "localhost";
   $DB_NAME = "MeuBanco";
   $DB_USER = "MeuNome";
   $DB_PASS = "MinhaSenha";

   try {

	  $conexao = mysql_connect($DB_HOST, $DB_USER, $DB_PASS);

   } catch {
   }

   echo "<p>Esse texto deve ser exibido</p>";

?>

Só isso. Coloquei nas "constantes" lá em cima dados propositais que irão gerar uma exceção.

Ao rodar o script aparece a mensagem de erro falando que não foi possível conectar no banco e depois o texto que deve ser exibido é exibido. Minha pergunta é: como fazer para a mensagem de erro da conexão não ser exibida nessa página?

 

Novamente agradeço a todos pela ajuda!

 

t+!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma exceção só pode ser "pega" (catch) se ela for "disparada" (throw).

 

Então:

PHP
<?php

 

$DB_HOST = "localhost";

$DB_NAME = "MeuBanco";

$DB_USER = "MeuNome";

$DB_PASS = "MinhaSenha";

 

try

{

 

    if (!($conexao = @mysql_connect($DB_HOST, $DB_USER, $DB_PASS)))

    {

        throw new Excpetion("Erro na conexão");

    }

 

}

catch(Exception $e)

{

 

    echo $e->getMessage();

    exit;

}

 

echo "<p>Esse texto deve ser exibido</p>";

 

?>

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

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.