ユーザー入力を解析する場合、例外をスローしてキャッチするのではなく、検証メソッドを使用することをお勧めします。.NET BCLでは、これは、たとえばint.Parse(無効なデータで例外をスローする)とint.TryParse(false無効なデータで戻る)の違いになります。
私は自分でデザインしています
Foo.TryParse(string s, out Foo result)
メソッドと私は戻り値がわからない。bool.NET独自のTryParseメソッドのように使用することもできますが、エラーのタイプ、つまりに解析できなかった正確な理由について sはわかりませんFoo。(たとえば、s括弧Barが一致していない、文字数が間違っている、対応するがないBazなど)
APIのユーザーとして、操作が失敗した理由を通知せずに成功/失敗のブール値を返すだけのメソッドは嫌いです。これにより、推測ゲームのデバッグが可能になり、ライブラリのクライアントにもそれを課したくありません。
私はこの問題の多くの回避策(ステータスコードを返す、エラー文字列を返す、エラーパラメータを出力パラメーターとして追加する)を考えることができますが、それぞれに欠点があり、また、 .NET Frameworkの。
したがって、私の質問は次のとおりです。
(a)例外をスローせずに入力を解析し、(b)単純なtrue / falseブール値よりも詳細なエラー情報を返す.NET Frameworkのメソッドはありますか?
Parse()です。