Вот пример. У меня есть класс реализующий соединение с БД. У него есть член dsc_connect, который содержит результат соединения (дескриптор или false в случае неудачи). Ниже приведен кусочек когда, который в зависимости от результата соединения либо продолжает программу, либо завершает её: Код (Text): $db = new Database(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE); if (!$db->dsc_connect) { print $db->_mysql_error(); // вывод сообщения об ошибке exit(); // завершение сценария } Как стоит поступать. Следует ли код расположенный ниже операции создания объекта, инкапсулировать в самом объекте. Или же стоит во внешней среде по состоянию объекта конструировать дальнейший ход программы? Т.е. инкапсулировать подобные участки кода или нет? Расскажите о методологии ООП... С одной стороны, при инкапсулировании мы разгружаем внешнюю среду от излишнего кода. С другой стороны, объекту, в таком случае, не нужен вообще внешний интерфейс и идет сильное сокрытие логики программы. Вот такая у меня дилемма.
Сергей имеет ввиду, что обработку ошибок обьект не должен реализовывать, он должен сообщать о внештатных ситуациях методом исключений. Вообще, обьект должен реализовывать исключительно свой прямой функционал, сводя до минимума любой другой, и обработку ошибок - в том числе.
Понял. А исключения надо реализовывать в классе или во внешнем коде? Можете скинуть хорошую ссылку, где представлено описание исключений в PHP. А-то в моих книгах, этот вопрос затрагивается сухой теорией.