Отлов и обработка ошибок

akxxiv

Новичок
Отлов и обработка ошибок

Как лучше отлавливать ошибка в РНР 4..
Меня интересует не синтаксические, а скорее програмные ошибки или пользовательские, ну, там такие как: Ошибка SQL запроса, не могу прочитать файл, Пользователь с таким логином уже существует...
Сейчас я это делаю следующим образом:
PHP:
function openFile($obj)
{
    if(!$file = fopen(...)) return(10);
    ......
    $obj = // какому-нибудь значению из $file
    return (0);
}

$err = openFile(&$obj);
if($err) ErrorReport($err);

// обрабатываем $obj
Т.е. ошибка в работе программы возвращается функцией, а результат передается по ссылке. Но что-то подсказывает мне, что такой вариант не самый лучший...
 

uliss

Новичок
Не лучший, ведь вдруг понадобиться вернуть из функции не код ошибки, а данные.

Можно ставить глобальные флаги ошибки, как в C, но ИМХО выход один - переходить на PHP5 и использовать исключения
 

uliss

Новичок
Так, конечно, тоже можно - но иногда нужно не вызвать какую-то определенную функцию,
а просто передать сообщение в вызывавший контекст о том что что-то случилось не так. А в этом контексте уже решать, как программе действовать дальше.
 
Сверху