ご覧いただきありがとうございます。プログラミング初心者のため質問が下手くそかもしれませんがご容赦ください。
PHPのマニュアルを見ながら勉強しているのですが、try catchの処理でエラーが発生した際に、tryのブロックでthrowしてExceptionクラスのインスタンスを作成して、第一引数にエラー時のメッセージを設定し、後に出てくるgetMessageメソッドに代入、catchでPDOExceptionクラスのgetMessageメソッドを呼び出すと認識しているのですが、コードAだと、DSNにエラーなくとも'Failed to connect DB'が表示されてしまいます。
逆に某動画サイトではcatchブロックでthrowしており、こちらはエラーを識別して正常に機能しています。
コードAは何が間違っているのでしょうか?
自分なりに色々と調べましたが正確な理解をできず悩んでおります。
もしよろしければお力をお貸しいただければと思います。よろしくお願いいたします。
PHP
1 2コードA 3 private function _connectDB(){ 4 try{ 5 $this->_db = new \PDO(DSN,DB_USERNAME,DB_PASSWORD); 6 $this->_db->setAttribute(\PDO::ATTR_ERRMODE,\PDO::ERRMODE_EXCEPTION); 7 throw new \Exception('Failed to connect DB'); 8 9 }catch(\PDOException $e){ 10 11 $e->getMessage(); 12 } 13 }
PHP
1コードB 2 private function _connectDB() { 3 try { 4 $this->_db = new \PDO(DSN, DB_USERNAME, DB_PASSWORD); 5 $this->_db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); 6 } catch (\PDOException $e) { 7 throw new \Exception('Failed to connect DB'); 8 } 9 }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/09/22 11:06