try catch 捕获到异常后...

cwlcwr 2007-10-05 10:32:07
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的值 确是上一次正确调用的值
...全文
169 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
张云飞VIR 2007-10-06
  • 打赏
  • 举报
回复
try catch不是这样用的.是要处理异常的,要是不处理就throw出去,让上层处理
cwlcwr 2007-10-05
  • 打赏
  • 举报
回复
楼上方法
如果
catch(Exception ex)
{
b="错误";
}

执行到这里OTHERS(b);
把 错误传递出去
是在catch 里面 OTHERS(b);
还是外边呢?
photoplan 2007-10-05
  • 打赏
  • 举报
回复
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="错误";
}

}

这样改一下就行了
SDFDSAC 2007-10-05
  • 打赏
  • 举报
回复
结果没有什么问题啊。。。ws.testmetho(t)出现异常后a的值并没有改变,还是上次正确执行时候的值,所以b的值不是1就是2

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧