When establishing a new PDO db handler, I’ve got to wrap everything into a try-catch to prevent an error message that would print all db access data to the user.
But how about all the other methods like exec(), for example? Must I wrap all of these into a try-catch block? At which point is the PHP documentation telling that an method throws an exception?
First of all, you can set how errors are dealt with by PDO, using the
PDO::setAttributemethod, to set thePDO::ATTR_ERRMODE(error reporting) option.In particular, it is possible to configure PDO so it throws exceptions when there’s an error, instead of reporting an “error” — that’s what I generally do.
Then, when a method can throw an exception, it should be indicated in it’s documentation — generaly, it’s in the “Return value” section.
For instance,
PDO::preparecan throw an exception — depending on error reporting (see what I wrote just before) :As a sidenote : if you find a function / method that throws an exception, and it’s not indicated in its documentation, it might be a good idea to create a bug report (see http://bugs.php.net/ ), so that problem is corrected 😉
(Errors / mistakes / missing informations in the documentation are treated via the bug-tracker, like any other bug)