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