Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou mais com uma dúvida do que um problema.
Como estudei Exception em Java, venho com o conceito do funcionamento nele. Porém, em PHP, notei uma diferença que é a seguinte.
Código simples (meramente ilustrativo) para inserir um objeto no banco de dados
try {
$Objeto = new Objeto();
$Objeto->setParametro( 'blablabla' );
_Objeto::insert( $Objeto );
echo 'Cadastro realizado com sucesso'; echo $e->getMessage();
}
Caso o objeto não for inserido no banco de dados, ele lança a Exception "Falha na Inclusão"
Se fosse no java, ele iria até a linha
_Objeto::insert( $Objeto );
Ocorreria a Exception e pularia para o catch, onde a mensagem da Exceção seria tratada.
Porém, ele não está parando o código na Exception. Acontece o seguinte. O sistema tenta inserir, não consegue e trata a exception dentro do catch. Porém, depois de tratar a exception, ele continua o script dentro do TRY. A saída fica a seguinte:
Falha na InclusãoCadastro realizado com sucesso
Não há uma maneria de parar o script dentro do TRY quando for lançada uma exception?
----------------------------------
Err.... erro meu '-'
dentro do método
_Objeto::insert();
Já existia o tratamento dessa exceção, isso que ocasionava o não cancelamento da execução
Não, é estático mesmo. é apenas uma classe handler para trabalhar entre o Objeto $Objeto e a classe ObjetoDAO, basicamente uma BusinessLayer
Mas já resolvi o problema, havia outro tratamento da exception dentro do método
_Objeto::insert()
,
então ele tratava a exception dentro do método acima mencionado e continuava normalmente o script. Foi uma falha de atenção minha '-', pois pesquisei sobre catch e não encontrava solução, e o erro estava dentro da classe handler.
Não não, não foi isso que eu quis dizer 'estático' .. estou falando da variável , aí você usou _Objeto , ao invés de $Objeto , entendeu ? daí ficou parecendo que estava dando um erro aí que você não tinha visto.
Que bom que resolveu.
Cara .. aqui não seria $Objeto ?
_Objeto::insert( $Objeto );