だから私はいくつかのビジネスロジックをやっていて、次のようなコードを実行したいと思っています
select id from blah where foo = 1234 for update nolock
blah
このコードは、の対応する行がロックされている場合にDataMapper::SQLErrorをスローします。これは望ましい動作です。このエラーをキャッチし、それを使用してアプリケーションロジックに通知したいと思います。しかし、他のSQLエラーは、私がプログラミングしている場合とは異なり、同じ方法でキャッチするのは間違っているため、再スローしたいと思います。
返されるエラーオブジェクトには、文字列エラーメッセージと数値コード(50463045
)が含まれています。50463045
数値コードを比較するのは素晴らしいことのように思えますが、それがどのように決定されたかを少し理解することなく、定数をコードに埋め込みたくありません。特に、 Postgresのマニュアルでは、この状態のエラーコードはであると示唆されています55P03
が、それは同じではないようです。この魔法の数をどれだけ信頼できるのか、実験的な以外はどうやって決めるのかわからないので、あまり使い慣れていません。
エラーコードはどのように決定されますか?