Работа с PDOException, когда БД возвращает сообщение об ошибке

Я хотел бы знать, как именно я могу справиться с ошибкой » s, возвращаемые драйверами базы данных, доступными в классе PDO.

В качестве примера возьмем UNIQUE Fields в качестве учебного примера.

Как вы должны знать, по крайней мере, когда PDO Debug Mode активен, при попытке добавить что-то дублированное в поле UNIQUE базы данных мы получаем исключение PDOException.

И я хотел бы знать, как правильно с этим справиться. Я искал об этом и получил следующее:

try {

    // PDO::prepare(), PDOStatement::execute e etc.

} catch( PDOException $e ) {

    if( $e -> getCode() == 23000 ) {
        // Do something
    }
}

Но я не уверен, что это правильно, и, думая как программист, действительно ли это хорошая практика? Я имею в виду, полагаться на код ошибки?

Еще хуже: PDO принимает несколько драйверов, все они имеют один и тот же код ошибки?

Конечно, это не единственный случай. Есть еще несколько кодов ошибок, верно? Эта «техника» можно использовать при любых обстоятельствах?

6
задан Marcel Korpel 14 May 2011 в 11:39
поделиться