BCB 或 C++ 中try catch, 欢迎讨论

lhj 2005-12-16 04:07:11
书上说catch可以处理各种异常,功能强大。

我现在只会用
try
{
;
}
catch(...)
{
;
}

...可以用具体的异常来代替。大家都怎么用的呢?


...全文
1398 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lhj 2005-12-17
  • 打赏
  • 举报
回复
PPower(月亮光光,照地堂)
有道理,这个功能也是异常的一个好功能.
勉励前行 2005-12-16
  • 打赏
  • 举报
回复
用異常可以在很深的嵌套循環或遞歸中快速返回。

struct TmyException { int Flag ; };

try{ 這裡可調用遞歸程序 }
catch(TmyException &myException) //用異常快速退出遞歸
{
switch(myException.Flag)
{
case 0 : ...break ;
case 1 : ... break ;
default ;
}
}
catch(...)
{}
Waiting4you 2005-12-16
  • 打赏
  • 举报
回复
try
{
}
__finally
{
}
一般用来回收内存或者关闭打开的文件之类的东东,就是不管有没有出现异常都应该执行的部分,如:
int *p=new int[100];
try
{
...
}
__finally
{
delete []p;
}
lhj 2005-12-16
  • 打赏
  • 举报
回复
kmfangxun() 的例子也不错啊。
通过定义各种Exception,达到错误提示明确的目的。
另外还有
__try
{
}
__finally
{
}
大家用吗?
XBox360 2005-12-16
  • 打赏
  • 举报
回复
-_-!这个例子比较牛
constantine 2005-12-16
  • 打赏
  • 举报
回复
确实经典,基本上bcb写得程序都有
silence0201 2005-12-16
  • 打赏
  • 举报
回复
不惑的代码真是经典!
cczlp 2005-12-16
  • 打赏
  • 举报
回复
经典:
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
G66606495 2005-12-16
  • 打赏
  • 举报
回复
我一般是这样做的:
try
{
让计算机做你想做的事情.
}
catch(...)
{
告诉计算机,你想做的事没做成该怎么办.
}
:)
kmfangxun 2005-12-16
  • 打赏
  • 举报
回复
int aa,bb,xx;
bb=0;
try
{

if(bb==0)
throw EDivByZero("bb不能为零!");

xx=aa/bb;

}
catch(EDivByZero &E)//VCL Exception类的子类
{
ShowMessage(E.Message);
}
catch(Exception &E) //所有VCL异常类的基类
{
ShowMessage(E.Message);
}
catch(...) //捕获所有异常
{

}

kmfangxun 2005-12-16
  • 打赏
  • 举报
回复
int aa,bb,xx;
bb=0;
try
{

if(bb==0)
throw EDivByZero("bb不能为零!");

xx=aa/bb;

}
catch(EDivByZero &E)
{
ShowMessage(E.Message);
}

constantine 2005-12-16
  • 打赏
  • 举报
回复
int a;
try
{
a=StrToInt("12s");
}
catch(...)
{
a=0;
}

超级简单得例子

13,874

社区成员

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

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