rvlira 0 Denunciar post Postado Dezembro 4, 2007 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
Ricardo.RFS 0 Denunciar post Postado Dezembro 4, 2007 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
Beraldo 864 Denunciar post Postado Dezembro 4, 2007 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