如何停止正在运行,但检测出错的代码?

marklr 2008-07-21 09:34:14
我提交用户数据的按钮代码下面,对于关键部分,使用了如下保护,我希望能够在程序运行时,catch到错误,程序能够停止下来,所以我在catch结构里面使用了return;,但是我发现Return之后,程序还会继续运行下面的代码,请问如何停止程序?

会继续执行出错后的代码,


......
......
......

try
{
......
......
......
}
catch(...)
{
......
return;
}

......
......
......
...全文
104 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
我来看看CB 2008-07-22
  • 打赏
  • 举报
回复
楼上的正解
TripH0101 2008-07-21
  • 打赏
  • 举报
回复
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int a;
AnsiString str="12s";
try{
try{
a=StrToInt(str);
}
catch(...)
{
a=12;
}
}
__finally
{
this->Label1->Caption =IntToStr(a);
return;
}
this->Label1->Caption ="Unreachable code";//这行代码不会被执行

}
TripH0101 2008-07-21
  • 打赏
  • 举报
回复
......
......
......

try
{
......
......
......
}
catch(...)
{
......

}
finally{
return;
}
......
......
......
无论try或catch中发生了什么情况,finally都是会被执行的,那么写在try或者catch中的return语句也就不会真正的从该函数中跳出了,它的作用在这种情况下就变成了将控制权(语句流程)转到 finally块中

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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