发生错误时如何终止应用程序?

How to terminate an application when an error happnes?

我正在使用名为 Irrlicht 的图形库 在某些时候我必须写这段代码

    if(!device){
       //error code here`
   }

我不在主函数中,但想在发生此错误时关闭应用程序 请记住,我是初学者,所以这个问题听起来很愚蠢 我看到有些人这样做:

int main(){
   if(!device){
      return 1;
   }
return 0;
}

我不在主函数中,想在主函数外退出应用程序

以下示例让您了解一些可能性。

您可以简单地复制和粘贴它并尝试一下。只需使用一行“终止操作”,如 throwexit。如果您在 main 函数中没有 try catch block,您的应用程序也会终止,因为不会捕获异常。

struct DeviceNotAvailable {}; 
struct SomeOtherError{};

void func()
{
    void* device = nullptr; // only for debug

    if (!device)
    {   
// use only ONE of the following lines:
        throw( DeviceNotAvailable{} );
        //throw( SomeOtherError{} );
        //abort();
        //exit(-1);
    }   
}

int main()
{
    // if you remove the try and catch, your app will terminate if you
    // throw somewhere
    try 
    {   
        func();
    }   
    catch(DeviceNotAvailable)
    {   
        std::cerr << "No device available" << std::endl;
    }   
    catch(SomeOtherError)
    {   
        std::cerr << "Some other error" << std::endl;
    }   

    std::cout << "normal termination" << std::endl;
}