PHP, Como pegar uma divisão por zero?

Eu tenho uma grande expressão matemática que deve ser criada dinamicamente. Por exemplo, depois de analisar "algo", o resultado será uma sequência como:"$foo+$bar/$baz";.

Então, para calcular o resultado dessa expressão, estou usando oeval função ... algo como isto:

eval("\$result = $expresion;");
echo "The result is: $result";

O problema aqui é que às vezes recebo erros que indicam que houve uma divisão por zero e não sei como capturar essa exceção. Eu tentei coisas como:

eval("try{\$result = $expresion;}catch(Exception \$e){\$result = 0;}");
echo "The result is: $result";

Ou:

try{
    eval("\$result = $expresion;");
}
catch(Exception $e){
    $result = 0;
}
echo "The result is: $result";

Mas não funciona. Então, como posso evitar que meu aplicativo falhe quando há uma divisão por zero?

Editar:

Primeiro, quero esclarecer uma coisa: a expressão é construída dinamicamente, por isso não posso avaliar se o denominador é zero. Então ... com relação ao comentário de Mark Baker, deixe-me dar um exemplo. Meu analisador poderia criar algo parecido com isto:

"$foo + $bar * ( $baz / ( $foz - $bak ) )"

O analisador constrói a string passo a passo sem se preocupar com o valor dos vars ... portanto, neste caso, se$foz == $bak de fato, há uma divisão por zero:$baz / ( 0 ).

Por outro lado, como Pete sugeriu, tentei:

<?php
$a = 5;
$b = 0;

if(@eval(" try{ \$res = $a/$b; } catch(Exception \$e){}") === FALSE)
        $res = 0;
echo "$res\n";
?> 

Mas não imprime nada.

questionAnswers(13)

yourAnswerToTheQuestion