VC win32 applcation 异常处理void CMyDlg::OnButton2() 
{
   int i;
     SYSTEMTIME systime;
     systime.wYear = 2008 ;
     systime.wMonth = 11;
     systime.wDay  = 20 ;
     systime.wHour = 32;
     systime.wMinute  = 23;
     systime.wSecond = 12;
     i = SetSystemTime(&systime);
}
问题1:
try
{
    i=SetSystemTime(&systime);
    if (i == 0)
       {
         return ;
       }
}
catch (...)
{
    AfxMessageBox(_T("出现异常"));
}
thow 放到哪里啊?thow 0.5  throw 1  throw 4 
他们有区别吗?
谢谢!
问题2:
try
{
    i=SetSystemTime(&systime);
    if (i == 0)
       {
         return ;
       }
}
catch (...)
{
    AfxMessageBox(_T("出现异常"));
}如果在 catch 扑捉到了 异常
那程序还回继续运行吗?
问题3;
try
{
}
catch(...)
{
}这个语句有什么真正的用途啊?谢谢!

解决方案 »

  1.   

    1,thow放到catch里;
    2,这要看你的程序处理,捕捉到了一般就不会引起退出;
    3,catch(...)捕获所有错误。
      

  2.   

    谢谢大哥!1:
    try
    {
        i=SetSystemTime(&systime);
        if (i == 0)
           {
             return ;
           }
    }
    catch (...)
    {
        AfxMessageBox(_T("出现异常"));
    }是 throw 1 还是 throw 0.5 还是 throw 2
    是根据什么来的?2:
    throw 放到  catch 有什么作用啊?谢谢!
      

  3.   

    #include "stdafx.h"
    #include <iostream>using namespace std;
    int main(void)
    {
    int i;
    i= 5;    try
           {
       // if (i >2)
           // {
              throw 1;
    //} }    catch ( 1 )    {
            cout << "catch ..." << endl;    }
    cin.get();
    return 1;
    }编译时提示的错误是:
    --------------------Configuration: test1 - Win32 Debug--------------------
    Compiling...
    test1.cpp
    C:\异常测试\test1\test1.cpp(23) : error C2059: syntax error : 'constant'
    C:\异常测试\test1\test1.cpp(23) : error C2310: catch handlers must specify one type
    C:\异常测试\test1\test1.cpp(29) : error C2317: 'try' block starting on line '16' has no catch handlers
    Error executing cl.exe.test1.exe - 3 error(s), 0 warning(s)
    我是错在哪里啊?
    谢谢!