c++程序退出,代码0错误
C++ program exited with code 0 error
多年来我第一次在工作中使用c++,我试图追踪一个问题。我编写了一些代码,列举了一台机器上运行的进程,并返回了性能指标。我的问题是发生了某种未处理的错误,在调试窗口中,我得到一条消息说程序已经退出,代码为0。下面是main函数
中的代码 int _tmain(int argc, _TCHAR* argv[])
{
while(nRun == 1)
{
try
{
WriteHeartBeat();
DoProcessLoop(dwTotalRAM, nCheckPause, oPMeter, cFileName, oProcess, oCPUUsage, nProcCount, ddsCaps2, lpDD);
CopyPerfFileToDest(cFileName);
nRun = 1;
tEnd = time(NULL);
}catch(...){
AddToLog("Error in Main Function");
}
}
AddToLog("App Stopped");
return 0;
}
程序运行了很长一段时间,但过了一会儿,它只是回来说它退出了代码0,但"App Stopped"行从未打印到日志中。有人知道我可能有什么错误或什么问题可能发生吗?try catch块是否足以捕获任何可能发生的错误,或者我还能做些什么。如果您能提供任何帮助,我将非常感激。
编辑:如果正确退出,日志文件应该从这里得到3个条目。它们是"DoProcessLoop"函数的"Doing ProcessLoop","CopyPerfFileToDest"函数的"copy File"answers"App Stopped",如果它正确停止的话。当我让它正确停止时,我得到所有3行,当它停止不正确时,我只在日志中得到"做过程循环",然后以代码0退出。错误一定在这里。我很好奇是否有一个通用的错误陷阱,我可以做捕捉任何所有的错误。
如果从_tmain调用的函数之一调用exit(0):
http://www.cplusplus.com/reference/clibrary/cstdlib/exit/http://msdn.microsoft.com/en-us/library/6wdz5232.aspx有时文件没有正确刷新,所以如果AddToLog函数在退出之前延迟写入文件,那么它可能不会写入值。您可以调试程序,看看是否发生了一些奇怪的事情,或者添加一个变量,如status,并在catch函数中设置它,然后在最后返回它,这样您就可以根据值知道是否有错误。
尝试用布尔值改变addtolog的返回值,并使用:
boolean logged=false;
while(!logged){
logged = AddToLog("App Stopped");
}
这应该防止程序退出,直到写入"App Stopped",这可能是问题所在。
相关文章:
- 错误处理.将系统错误代码映射到泛型
- 为什么我在使用void函数时得到错误代码C2276
- 尝试链接我的着色器时,我收到错误代码"error c5145 must write to gl_position"
- 逻辑运算符上出现错误代码 a')'
- 'val' Arduino 错误代码之前的预期'('
- 我在贪吃蛇游戏中收到了错误代码 -1073741571
- 根据 GetLastError 直接写入磁盘会导致错误代码 5
- 当我选择大于 720 的矩阵大小时,程序退出并显示错误代码.可能是什么原因?
- 创建进程 API 失败,在窗口 122 上出现错误代码 10
- 使用另一个函数调用一个函数(都在类中)时出现问题.没有错误代码C++
- 当命令失败时,gzip 会在 C++ 中返回错误代码吗?
- 从 C++ 调用 cURL 命令会返回意外的错误代码,如 1792 和 6656
- WSALookupServiceBegin() 上的错误代码 10022(无效的 arugment)
- C++ Schannel POST 400 错误代码错误请求
- openCL-创建子缓冲区返回错误代码13
- 更新了Runge-Kutta(RK4)C++错误代码中的二阶DE
- 获取有关使用未初始化内存的错误代码
- 排序程序的意外错误代码
- 正在将DJI错误代码记录到流中
- 来自API的错误代码..处理什么是好的做法