C# 尝试捕捉糟糕的编程实践

C# 尝试捕捉糟糕的编程实践,c#,try-catch,C#,Try Catch,我正在执行一个存储过程并返回一个字符串。该字符串设置为返回1、0或“用户不存在”,具体取决于条件 我只是想知道以下是不是一个糟糕的编程实践 string result = _db.GetParameterValue(cmdObj, "@strMessage").ToString(); try { int a = int.Parse(result); if (a == 1) Console.WriteLine("A"); else Conso

我正在执行一个存储过程并返回一个字符串。该字符串设置为返回
1
0
“用户不存在”
,具体取决于条件

我只是想知道以下是不是一个糟糕的编程实践

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);

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

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

最好是专门匹配,而不是基于捕获失败的int解析而假定它是“用户不存在的”

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


您没有指定语言,因此假定它是C#,
int.TryParse()
int.Parse
内部的
try/catch
更干净,谢谢robrich。这是我想到的第二个想法。