接続管理で何かがエラーになるとDoctrine_Manager_Exceptionが投げられます。
try {
$manager->getConnection('unknown');
} catch (Doctrine_Manager_Exception) {
// エラーを補足する
}
リレーションの解析の間にエラーになるとリレーションの例外が投げられます。
データベースレベルで何かがエラーになると接続例外が投げられます。Doctrineは完全にデータベースにポータルなエラーハンドリングを提供します。このことはsqliteやその他のデータベースを使っていようが起きたエラーに関するポータブルなエラーとメッセージを常に得られることを意味します。
try {
$conn->execute('SELECT * FROM unknowntable');
} catch (Doctrine_Connection_Exception $e) {
echo 'Code : ' . $e->getPortableCode();
echo 'Message : ' . $e->getPortableMessage();
}
DQLクエリが無効な場合にクエリが実行されるときに例外が投げられます。
Doctrineの例外を扱い方を学んだので実際の世界のスキーマの章に移動して今日のウェブで見つかる共通のウェブアプリケーションで使われている例を見ます。