尝试捕捉糟糕的编程习惯

时间:2012-04-28 07:39:47

标签: c# try-catch

我正在执行存储过程并返回一个字符串。该字符串设置为返回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);

2 个答案:

答案 0 :(得分:8)

总是更好地专门匹配而不是假设它是基于捕获失败的int解析的“USER NOT EXISTS”。

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

您没有指定语言,因此假定它是C#,int.TryParse()int.Parse内的try/catch更清晰。

答案 1 :(得分:4)

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

 int outValue = -1;
 int.TryParse(result, out outValue);