3

ストアド プロシージャを実行し、文字列を返しています。文字列は、条件に応じて10またはを返すように設定されます。"USER DOES NOT EXISTS"

以下が悪いプログラミング慣行であるかどうかを知りたかっただけです。

string result = _db.GetParameterValue(cmdObj, "@strMessage").ToString();
try
{
    int a = int.Parse(result);
    if (a == 1)
        Console.WriteLine("A");
    else
        Console.WriteLine("B");
}
catch
{
    Console.WriteLine(result);
}

Console.WriteLine(result);
4

2 に答える 2

8

失敗した int 解析に基づいて「USER NOT EXISTS」であると推測するよりも、具体的に一致させる方が常に適切です。

試したり、捕まえたり、飲み込んだりすることは常に悪い習慣です。例外をキャッチする場合は、ログに記録するかスローします。

言語を指定していないため、C# であると仮定すると、a 内int.TryParse()よりもはるかにクリーンです。int.Parsetry/catch

于 2012-04-28T07:45:56.200 に答える
4

try catch ブロックに含めないtryParseください

 int outValue = -1;
 int.TryParse(result, out outValue);
于 2012-04-28T07:45:50.753 に答える