function assertPositive($a)
{
if($a < 0)
throw(...);
}
Исключительные события в рнр
try
{if(!eval('return 2/0;'))
{ throw(...)}}...
и вот такой код
try
{
if(!eval('return 1-1;'))...
оба вызовут ошибку?
Что значит генерируются самостоятельно?
Вызовут ли оба ошибку может ответить эксперимент.
Цитата: smoki
я так и не понял исключительные события, почему они опираются на оп. if, а не генерируются самостоятельно
Исключительные события сами по себе не генерируются. Они посылаются оперетором throw. Другое дело, что постоянно исключения посылять не нужно, а нужно лишь реагировать на неверные данные, состояние или еще что-то. if как раз и проверяет, все ли в порядке.
Код:
Эта функция создает исключительную ситуацию, когда ей будет передан отрицательный параметр.
да, но при использовании функции eval, при возникновении ошибки деления на 0 эта функция возвращает 0 при проверке возникает ошибка, а если 0 будет возвращатся, как результат вычисления, то ошибка тоже будет вызываться, что неверно, т.к. никакой ошибки не было
Код:
if ( (eval(...) === NULL) || (eval(...) === FALSE) )