に使用おろか格別なもの - ちょうどロジックの決定、検証...ウェブページで例外(AB)が、でも本当にエラーではない状況のために私は自分自身がWeb開発で例外を使用して検索するWeb開発
、私はよくそうのようなコードを書く:これは本当に例外を使用してWeb開発でビジネスロジックを強制する正しい方法であれば、私は思っていた
try
{
int id;
if(!int.TryParse(txtID.Text, out id))
throw new Exception("ID must be an integer");
if(IdAlreadyExists(id))
throw new Exception("ID already exists in database");
//and so on...
}
catch(Exception ex)
{
SetErrorLine(ex.Message);
}
。
P.S.私はasp.netを使用していますが、明らかにこれらのいくつかにはASP.NETバリデーターを使用でき、ロジックからは別個のUIを使用することもできますが、一般的な考え方を指摘しています。
あなたのほとんどがこのような行為に反対しているようだが、私はまだそれが行われるべき方法に欠けています。 例外を使用してBLからメッセージを渡すのは本当に簡単ですが、どうすればそれらを使用せずに行うのですか? エラーメッセージが発生した場合にそのエラーメッセージを保持する出力文字列を渡し、その後UIでSetErrorLine(myMessage)を渡しますか? まだ、 のモデルtry {do_bl_stuff(); } catch(例外ex){SetError(ex.message);} }最も簡単で、実際には最もクリーンなようです。あなたはそれをどうやって行うのかの例をペルシェスに与えることができますか? –
なぜ、単にparseを使用して例外をスローする代わりにtryparseを使用して例外をスローすると、.netはその例外自体をスローしますか?私はちょうど期待どおりにIDを使用し、多くの行が影響を受けているかどうか(何かが存在し、私の挿入が静かに失敗する)を見るためにexecuteNonQuery()をチェックします。 –