thinkphp取得mysqlエラー


最近thinkphpでmysqlをキャプチャできないエラーメッセージを発見しました.例えば、テーブルにプライマリ・キーの重複するデータを挿入すると、プログラムがその文に引っかかります.次のようにします.
:(
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1' for key 'PRIMARY'
エラー位置
FILE: D:\*****\ThinkPHP\Library\Think\Db\Driver.class.php  LINE: 226
TRACE
#0 D:\*****\ThinkPHP\Library\Think\Db\Driver.class.php(226): PDOStatement->execute()
コードでtry catchを使用するのは無効で、最後にDriver.を変更します.class.phpファイル
中169行と226行の
$result =   $this->PDOStatement->execute();

次のように変更
try{//lighthouse 
   $result =   $this->PDOStatement->execute() ;
}catch (\PDOException $e) {
   echo 'queryStr='.$this->queryStr.'<br/>';
   print "Error: " . $e->getMessage() . "<br/>";
   return -1;
}

これによりpdoのエラーを柔軟に処理できます.もちろん、上記のエラー情報を表示するコードは、管理者にメールを送るか、ログを記録するなどの機能に変更できます.
この方法はフレームワークの下部を変更し、後でアップグレードするのは面倒です.どの友達がもっといい方法があるか教えてください.