如果我得到一个除以零,我怎么能抓住它,只是回显一个错误或类似的东西?
这是有问题的代码行:
$percent = round(100.0*($row['p2']/$row['p1']-1));
如果我得到一个除以零,我怎么能抓住它,只是回显一个错误或类似的东西?
这是有问题的代码行:
$percent = round(100.0*($row['p2']/$row['p1']-1));
只需检查它$row['p1']
不为零。
如果为零,请执行其他操作(例如报告错误)
PHP 中除以零返回false
并显示警告消息。您可以通过附加@
到有问题的表达式来消除警告消息。
$foo = @(10 / 0);
if ($foo === false) {
// Division by zero
}
不过,首先尝试避免除以零会更干净。
抑制警告消息通常表明您应该采取不同的做法。例如,在将整数用于除法之前,只需检查整数是否为 0。
如果 $row['p1'] 的值为 0,那么您将得到除以零的错误。如果你想捕捉它而不在 UI 中显示丑陋的异常,你可以这样写。
try {
$percent = round(100.0*($row['p2']/$row['p1']-1));
} catch() {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
您现在将收到确切的错误消息。最好使用条件 if(0 !== $row['p1'])。