0

次のような例外メッセージがあるとします

Violation of UNIQUE KEY constraint 'UC_FileTypeName'. Cannot insert duplicate key in object 'dbo.FileUpload'.  

'UC_FileTypeName' という名前の制約を取得するクラス メソッドまたは方法はありますか? データベースでこの制約名を検索し、説明的なメッセージを表示するつもりだったので。

文字列全体を読み取って、「UC」で始まり「」で終わる文字列を取得することを考えていました。しかし、「FK_」などの他の制約エラーがあることは知っているので、それは良い考えではありません。

4

1 に答える 1

1

どのような状況でも、例外の Message プロパティの解析に依存しないでください。実際、人間が読める出力の解析に依存しないでください

解析するためのものではありません。人間が読むことを意図しています。このようなメッセージは、現在の文化の変化に基づいて変更される可能性があり、実際に変更される可能性があり、文法エラーが修正されるにつれてリリースごとに変更される可能性があります。

同等の「わかりやすい」メッセージがあったとしても、ユーザーが「申し訳ありませんが、既存の行と同じ A、B、および C 列を持つ別の行を入力することはできません」のようなことを本当に理解できると思いますか?

最善の策は、最初にデータを検証し、制約に違反する行を入力しようとさえしないことです。

于 2011-03-30T02:14:45.450 に答える