__try __except __final不是C++标准,只是Windows 上面的异常处理机制,可以用c++里面的try catch来处理异常,只要是支持c++标准的都可以编译他

解决方案 »

  1.   

    什么叫跳过异常?处理就catch,否则不用catch呀,不明白你什么意思
      

  2.   

    c本来就没有异常处理能力,只是有可能一些编译器对语言做了扩展.不管怎么说,在c语言里面处理异常,那么一定是有的编译器支持,有的不支持了.vc支持在c语言里面使用__try __except __final来处理异常,别的编译器就未必支持了,因为用c语言处理异常并不是c语言的标准,编译器厂商没有必要一定实现他们。
      

  3.   

    这么说C++可以做到的,在C不能实出了?
    SetUnhandledExceptionFilter可以处理异常,但处理完异常不知如继往下执行
    也就是说:__try{}_except(,){}已经实现,中是处理完__except{}不知如何往下执行。
    例子:
    LONG Exceptions( EXCEPTION_POINTERS *e)
    {
       //处理异常
       return EXCEPTION_CONTINUE_SEARCH;
    }...
    SetUnhandledExceptionFilter(Exceptions);
    strcpy((char*)0,"ok");//出错
    MessageBox(0,"a","",MB_OK);//问题难在如何跳来这里??????
    ...
      

  4.   

    例子:
    //异常处理函数
    LONG Exceptions( EXCEPTION_POINTERS *e)
    {
       //处理异常
       return EXCEPTION_CONTINUE_SEARCH;
    }...
    SetUnhandledExceptionFilter(Exceptions);
    strcpy((char*)0,"ok");//出错系统就是会调用前面的Exceptions函数
    MessageBox(0,"a","",MB_OK);//问题难在如何跳来这里继续执行??????
    ...