2017-08-16 50 views
0

是否有可能爲PDOStatement::fetch()拋出異常(PDOException)或僅$dbh->prepare($query)->execute()可能發出錯誤?可能性爲PDOStatement對象:: fetch()方法拋出一個PDOException

如果PDOStatement::fetch()不會拋出一個錯誤,那麼我可以滿懷信心地使用它,而把它放在try...catch子句中

+1

您不必將每個可能拋出異常的方法放入try..catch中,您知道嗎?這隻有在你*期望*出錯時纔有所幫助,並且如果你發現了錯誤並且知道該怎麼做。如果在發生*異常*時不知道該怎麼做,這意味着一個*例外,無法預料的問題*,那麼您最好還是讓程序死掉。 – deceze

+0

(來自docs)這個函數在成功上的返回值取決於獲取類型。在所有情況下,FALSE都會在失敗時返回。 –

+0

根據[這裏](http://php.net/manual/en/pdostatement.fetch.php),如果失敗,它將爲所有獲取類型返回false。所以,即使你沒有放入'try..catch',也沒有問題,只要正確處理返回值 – Swellar

回答

0

@WeeZel已經爲這個問題提供了很好的答案:PDOStatement::fetch()沒有一個錯誤/異常節在文檔中,所以它不會拋出一個(參見PDO::__construct作爲如果發生錯誤會發生什麼的例子)。

請參考上面的評論。

相關問題