Hardc0re Asked:2020-07-06 15:20:49 +0800 CST2020-07-06 15:20:49 +0800 CST 2020-07-06 15:20:49 +0800 CST 为什么不抛出异常? 772 try{ 1/0; }catch (\DivisionByZeroError $error){ echo $error->getMessage(); } 从理论上讲,catch 应该有效,但由于某种原因它会输出 警告:在第 4 行的 C:\path\index.php 中被零除 php 1 个回答 Voted Best Answer Kostiantyn Okhotnyk 2020-07-06T15:27:51+08:002020-07-06T15:27:51+08:00 除以零是语法错误。因此,像示例中那样处理它是正确的,使用throw: function inverse($x) { if (!$x) { throw new Exception('Деление на ноль.'); } return 1/$x; } try { echo inverse(5) . "\n"; echo inverse(0) . "\n"; } catch (Exception $e) { echo 'Выброшено исключение: ', $e->getMessage(), "\n"; }
除以零是语法错误。因此,像示例中那样处理它是正确的,使用
throw
: