日期:2014-05-18  浏览次数:20828 次

try catch 捕获到异常后...
string a="",b="";
void test(int t)
{
try
{
 a=ws.testmetho(t);
}
catch(Exception ex)
{
b="错误";
}
if(a="aaaaaa")
{
b="1";OTHERS(b);
}
esle
{b="2";OTHERS(b);
}
}
出现问题症状
循环调用 test()
当 a=ws.testmetho("test"); 出现异常后 b的值 并没有是预期的 "错误"
而是上一次调用正确的值 1或者2
既 例如
6次循环吊用该方法 
a的值分别为 aaaaaa,bbbbb,"异常",ggggggggg,aaaaaa,"异常",
b的值 应该为 1 2 错误 2 1 错误
但实际却是
  1 2 2 2 1 1
即 异常情况下 b的值 确是上一次正确调用的值


------解决方案--------------------
结果没有什么问题啊。。。ws.testmetho(t)出现异常后a的值并没有改变,还是上次正确执行时候的值,所以b的值不是1就是2
------解决方案--------------------
void test(int t) 

try 

 a=ws.testmetho(t); 
 if(a="aaaaaa") 
 { 
b="1";OTHERS(b); 
 } 
 esle 
 {
b="2";OTHERS(b); 
 } 

catch(Exception ex) 

b="错误"; 




这样改一下就行了

------解决方案--------------------
try catch不是这样用的.是要处理异常的,要是不处理就throw出去,让上层处理