2012-04-28 49 views
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

你应该使用tryParse将其包括在try catch块。

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

是的,明白了。谢谢。 – Rain 2012-04-28 07:50:27

8

在捕获失败的int分析的基础上,明确匹配总是比较好,而不是假定它是“USER NOT EXISTS”。

尝试/抓住/吞下总是不好的做法。如果你要捕捉异常,请记录它或扔掉。

你还没有指定一种语言,所以假设它是C#,int.TryParse()int.Parse更清洁try/catch

+0

谢谢罗布里奇。那是我想到的第二个想法。 – Rain 2012-04-28 07:48:46