Деление на ноль внутри try/catch (Exception)
function safeDivide(int $a, int $b): int
{
try {
return intdiv($a, $b);
} catch (Exception $e) {
return 0;
}
}
echo safeDivide(10, 0);
Какое поведение верно?
- Скрипт завершится фатально: DivisionByZeroError наследуется от Error и в catch (Exception) не попадает
- Вернёт 0: catch (Exception) перехватывает любые ошибки выполнения, включая ошибки уровня движка
- Вернёт 0, а деление на ноль дополнительно запишет warning в лог ошибок PHP
- Вернёт INF: деление на ноль в PHP ошибкой не считается и даёт бесконечность
