为什么要用try catch

zhangwuji156 2008-07-30 12:05:59
我倒是知道try catch的功能,这个CB在运行的时候已经提供了这个机制
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);
}
}

为什么还要在自己的代码处写呢
try{
StrToInt(Edit->Text);
}catch(...){
ShowMessage("发生错误");}
如果用程序自己的try catch,如果Edit->Text不是数字,程序运行的时候会提示,Edit不是数字,而自己加try catch不会。
还有
...全文
357 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
网际飞蚁 2008-08-01
  • 打赏
  • 举报
回复
1、如果你自己不加try模块,使用系统try模块,当出现错误时系统只是简单用英文提示一下错误位置、类型等通用错误信息!
2、如果你自己不加try模块,对于不是致命错误可能导致后续程序崩溃(例如:你在一个函数中用new的方式分配了全局变量,在其它模块中使用这个变量);
dingwei2134 2008-07-31
  • 打赏
  • 举报
回复
其实主要就是为了让用户知道错误原因,以保证下次不会错啊
whomin 2008-07-31
  • 打赏
  • 举报
回复
为啥要捕获异常呢?就是因为捕获它了自己来处理呗,
不捕获的话就是系统自动处理,结果就是英文异常框、程序退出,这样写出的程序客户是没办法接受的。
fbmsyu 2008-07-31
  • 打赏
  • 举报
回复
比如,你有一程序,你要new一个东东,然后内存不够了,没有new成功,那么new就抛出一个异常.
如果你没有捕获这个异常并进行处理而继续操作,那么你的程序很可能就崩了.
我来看看CB 2008-07-30
  • 打赏
  • 举报
回复
自己可以捕捉错误,进行处理
hemiya 2008-07-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 twicave 的回复:]
如果不在异常发生的准确地点自己加上catch,
那么程序确实如你所说会将异常捕获,但是捕获的结果却是退出运行...
--这是你希望的结果吗?
[/Quote]

同意。自己捕捉异常,就是把程序出现错误的时候,后果控制在最小范围内。
子正 2008-07-30
  • 打赏
  • 举报
回复
如果不在异常发生的准确地点自己加上catch,
那么程序确实如你所说会将异常捕获,但是捕获的结果却是退出运行...
--这是你希望的结果吗?
zhangwuji156 2008-07-30
  • 打赏
  • 举报
回复
怎么处理?

三级跳

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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