2009-12-28 2 views
4

При создании нового обработчика db PDO я должен обернуть все в try-catch, чтобы предотвратить сообщение об ошибке, которое будет печатать все данные доступа db к пользователю.Какие методы PDO вызывают исключения?

Но как насчет всех других методов, таких как exec(), например? Должен ли я обернуть все это в блок try-catch? В какой момент есть документация PHP, указывающая, что метод генерирует исключение?

ответ

5

Прежде всего, вы можете установить, как ошибки рассматриваются по PDO, с использованием методы PDO::setAttribute, чтобы установить PDO::ATTR_ERRMODE(отчеты об ошибках) варианта.

В частности, можно настроить PDO, чтобы он выдавал исключения, когда есть ошибка, вместо сообщения об ошибке «- это то, что я обычно делаю.


Затем, когда метод может бросить исключение, оно должно быть указано в его документации - Generaly, это в разделе «Возвращаемое значение».

Например, PDO::prepare может бросить исключение - в зависимости от ошибки отчетности (посмотреть, что я написал как раз перед):

Если сервер базы данных не может успешно подготовить заявление, PDO::prepare() возвращается FALSE или испускает PDOException (в зависимости от ошибка обращение).


Как заметка на полях: если вы найдете функцию/метод, который вызывает исключение, и это не указано в документации, она может быть хорошей идеей, чтобы создать отчет об ошибке (см http://bugs.php.net/), так что проблема исправлена ​​;-)

(Ошибки/ошибки/недостающие сведения в документации рассматриваются через баг-трекер, как и любую другую ошибка)

2

Вы можете увидеть, если метод генерирует исключения, глядя на руководство.

Если вы посмотрите на руководство для __construct, вы увидите внизу в разделе «Ошибки/Исключения», что оно выдает исключение.

Смежные вопросы