我调用一个API,API的作用是进行一些通信的封装。但是在使用过程不定时的会发生异常导致整个程序崩溃,一直不知道怎么解决这个问题。
我把整个程序每个段都TRY{...} cathc(...){...}了,但还是会崩溃退出,请问有什么办法可以让我捕捉到这个异常,并保持程序不退出。
另外异常类怎么使用?
我把整个程序每个段都TRY{...} cathc(...){...}了,但还是会崩溃退出,请问有什么办法可以让我捕捉到这个异常,并保持程序不退出。
另外异常类怎么使用?
解决方案 »
- MFC中多线程是如何实现的?
- 真心求一个犀利的算法、策略
- 那个要技术分的大哥
- dc.MoveTo (rect.left(), rect.top());术语无法评估一个获得0个参数的函数
- 我要开始使用VC去控制PLC(网络版),应该先学习些哪些东西呢?
- qq的消息拦截问题?
- 如何计算图形的字节数(100分求助)
- 捡分了!怎样将浮点型转换成字符串型 如:float a=500;转换成字符串型。马上给分!!
- [高分请教]--在ActiveX中能不能调用脚本文件(.JS)--[高分请教]
- 问一个IDE的问题,VC程序分为Debug和Release版,两者到底有什么区别,怎样设成Release(默认Debug)
- ★★★轻松取分, 如何强制删除一个打开的文件 ? ★★★
- 关于画图,请教:)
TRY{} 要判断的异常快
catch{} 显示出错误
throw() 抛出异常
try
{
// 你的处理
}
catch(...)
{
// 当你的处理出现异常的时候,执行这里的代码
// ...表示全部的异常,也就是说只要发生异常,就执行
}2.在调试过程中,不过出现异常,调试还是要报错的,但是在执行.exe的时候,就正常进行了.
这大概也是编译器为了提醒设计者吧,我想.
你上面的情况,我怀疑就是调试的原因,因为调试过程中,遇到异常,就是要报错的!转到exe文件执行,试试...一点点测试,应该可以找到原因的,呵呵...Good luck...
{
int i = 0;
int j = 10/i;
} catch(...)
{
int i = 10;
}譬如这段程序, 调试时, 这个除0异常一样可以捕获。 所以能不能捕获与调试状态是没有很多关系的。我认为,如果catch(...)这个都捕获不到, 一种可能的原因的程序定义的一些保护性断言。如下:
try
{
ASSERT(FALSE);
//Test();
} catch(...)
{
int i = 10;
}
向上面这样的断言, 异常处理模块就不能捕获。所以如果调用API程序崩溃, 是不是一些条件不符合, 如某些指针必须有效, 你给的可能是无效的。
原来我以为是多个线程占用资源冲突的原因,后来改为只用一个线程,其他的都用系统回掉来实现,但还是崩溃了。