Interesting. I usually prefer to have PDO throw exceptions mostly because I think they are the most appropriate solution. Once I've finished developing and debugging an application database errors normally only happen in exceptional circumstances such as not being able to connect to the db. For me that would be the definition of an exceptional circumstance. I also find the code to be much cleaner if I'm using a try catch block. I can assume that unless an exception is thrown the database operations are proceeding as expected. Of course, it all comes down to the definition of an 'exceptional circumstance'...