首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

如何捕获错误不出现系统的提示框而继续往下执行程序

2012-02-24 
怎么捕获异常不出现系统的提示框而继续往下执行程序TClientDataSet* pResultnew TClientDataSet(NULL)TS

怎么捕获异常不出现系统的提示框而继续往下执行程序
TClientDataSet* pResult=new TClientDataSet(NULL);
TSocketConnection* pSocketConnection=new TSocketConnection(NULL);
pSocketConnection->Address=sIP;
pSocketConnection->Port=nPort;
pSocketConnection->ServerName=CHARGEDBSERVER;
pSocketConnection->Connected=True;  
pResult->RemoteServer=pSocketConnection;
pResult->ProviderName="dpInNormal";
pResult->CommandText=vecSql[0];
pResult->Active=True;

我的程序里运行到pSocketConnection->Connected=True;这句时,是套接字连接对方主机,如果能连上不出现问题,
如果连不上会弹出个出错提示框,点击完后程序就中断了。我想如果连接不上不跳出出错提示 程序接着往下执行应该如何做啊???
各位大侠帮帮忙啊,急救!!!!

[解决办法]

C/C++ code
try {//这里是执行过程中有可能出错的语句}catch(...){//你的异常处理}
[解决办法]
C/C++ code
try{    try    {        pSocketConnection->Connected=True;     }    catch (...)    {        // 捕获异常    }}__finally{    // 无论如何都可以执行到的代码}
[解决办法]
用个ApplicationEvents组件,在他的OnException事件中能捕获异常么??
[解决办法]
探讨
用个ApplicationEvents组件,在他的OnException事件中能捕获异常么??

[解决办法]
理论上只要是异常try{}catch(...){}就能捕捉到。
您所谓的捕捉不到有可能是因为:
1、你在调试,调试器比你先捕捉了;
2、你这个try里面的语句影响到了界面,而抛出异常的是界面的响应函数。此时捕获异常的是VCL自身的catch,自然到不了你这儿了:)
[解决办法]
在源码里面, 注释掉 Application->ShowException(&exception);
不一定成功, 原因同老妖说的
[解决办法]
未脱离IDE的情况下运行,普通异常虽然会被catch,但是仍然会弹出系统的异常提示框。脱离IDE运行就没事了。
[解决办法]
不在编译环境下运行试试看,就是直接用鼠标双击你生成得应用
探讨
IDE还不清楚啊。怎么脱离IDE运行。初来驾到bcb

热点排行