3

我正在执行一个存储过程并返回一个字符串。该字符串设置为 return 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 解析来假定它是“用户不存在”。

尝试/捕捉/吞咽总是不好的做法。如果您要捕获异常,请记录或抛出异常。

你没有指定一种语言,所以假设它是 C#,int.TryParse()int.Parsetry/catch.

于 2012-04-28T07:45:56.200 回答
4

您应该使用tryParse不是将其包含在 try catch 块中。

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