PHP5: Por que try / catch falhando?
Pergunta
No meu construir XAMPP / Win XP, PHP5.2.3 não consegue capturar quaisquer exceções. Nenhum dos exemplos trabalho, e isso:
try {
throw new Exception('Fail');
} catch (Exception $e) {
echo 'Succeed';
}
... resulta em:
Erro fatal : exceção Uncaught 'Exceção' com a mensagem 'Falha' em M: \ path \ to \ test.php: 4 Rastreamento de pilha: # 0 {Principal} jogado em M: \ path \ to \ test.php na linha 4
Todas as configurações de erro do PHP parece padrão. Server é Apache / 2.2.4
Solução
Isso depende de construção de eAccelerator no XAMPP. Em um ponto, que tinha otimização problemas try / declarações de capturas e apenas os ignorou.
O problema estava em 0.9.5. XAMPP atualmente é empacotado com eAccelerator 0.9.5.3, embora esteja desativado por padrão. Portanto, este pode não ser o seu problema.
De acordo com a ChangeLog , XAMPP não usou PHP 5.2. 3 e Apache 2.2.4 em um longo tempo, que é também em torno da época do bug eAccelerator. Eu recomendo verificar a sua versão eAccelerator e possivelmente atualizar XAMPP.
Outras dicas
Eu recebo "suceder" como saída executando o seu roteiro, tanto autônoma na linha de comando e via apache em um servidor web, bem como em xampplite. Não sei o que é diferente de sua configuração